データベースの作成
目次
- 解説
- 1. データベースの作成
- 2. テーブルの作成
- 3. 初期データの追加
解説
1. データベースの作成
次はDBを準備しましょう。
手順1
(1) | 『環境設定』コース内の『Docker > PostgreSQL > DBの起動・停止手順』を参考にPostgreSQLを起動し、pgAdminにログインしてください。 |
(2) | 『SQL』コース内の『データベースを作成しよう』を参考に「tweet_laravel」という名前のDBを作成してください。 |
2. テーブルの作成
作成したDBにテーブルを作成しましょう。
手順2
(1) | 『SQL』コース内の『テーブルを作成しよう』を参考に、下記のクエリを実行し、「users」テーブルと、「tweets」テーブルを作成してください。 ※手順1 で作成した「tweet_laravel」データベースを対象としたクエリツールを新たに開き、クエリを実行してください。 |
-- usersテーブルを作成
CREATE TABLE users (
id serial PRIMARY KEY,
name text NOT NULL,
email text NOT NULL UNIQUE,
password text NOT NULL,
profile text,
created_at timestamp(0) NOT NULL,
updated_at timestamp(0) NOT NULL
);
-- tweetsテーブルを作成
CREATE TABLE tweets (
id serial PRIMARY KEY,
user_id integer NOT NULL REFERENCES users (id),
post text NOT NULL,
created_at timestamp(0) NOT NULL,
updated_at timestamp(0) NOT NULL
);
3. 初期データの追加
つぶやきアプリ開発で使用する、初期データを登録しましょう。
手順3
(1) | 『SQL』コース内の『データを登録しよう』を参考に、下記のクエリを実行し、「users」テーブルと、「tweets」テーブルに初期データを登録してください。 |
-- usersテーブルに初期データを挿入
INSERT INTO users (name, email, password, profile, created_at, updated_at) VALUES
('テストユーザー', 'test@test.com', '$2a$08$MJGhfDGUXacl9scG.9G6buHbXBIkOoXAwMamcKvAW9cQlmHQiwvfW', 'テストユーザーです、よろしくお願いします。', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
('山田一郎', 'yamada@test.com', '$2a$08$9Vcw8B6VgEFSbmWp2tn6ne/SUzlQcv02v1oBSpjgQQGgdYFUbmtW2', '山田一郎と申します!よろしくお願いします!', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP),
('田中花子', 'tanaka@test.com', '$2a$08$6xIdRhPrwiia6uLSCGdlLeZFTt.Ma1AR.0SPZ5hAoklIBmn9ZZVty', 'つぶやきアプリはじめました、よろしくお願いします。', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
-- tweetsテーブルに初期データを挿入
INSERT INTO tweets (user_id, post, created_at, updated_at) VALUES
(1, 'こんにちは、テストユーザーです。', CURRENT_TIMESTAMP - INTERVAL '4 MINUTES', CURRENT_TIMESTAMP - INTERVAL '1 MINUTES'),
(2, 'はじめまして、山田一郎です!', CURRENT_TIMESTAMP - INTERVAL '3 MINUTES', CURRENT_TIMESTAMP - INTERVAL '3 MINUTES'),
(3, '田中花子です、よろしくお願いします。', CURRENT_TIMESTAMP - INTERVAL '2 MINUTES', CURRENT_TIMESTAMP - INTERVAL '2 MINUTES');
※「users」テーブルの「password」カラムに登録しているランダムな英数字は、「testpass」という文字列をハッシュ化(暗号化)した値です。
完了したら、正しくデータが登録されているか確認しておきましょう。