🍓
CMSチュートリアルに乗っ取って作成を進めよう
忙しすぎて2ヶ月ほどほったらかしになってしまったが今度こそちゃんと進めていこう
まずはチュートリアルに倣ったテーブル設計にするためにマイグレファイルを作成する
bin/cake bake migration CreateUsers "email:string[255]" "password:string[255]" created modified
bin/cake bake migration CreateArticles "user_id:integer[11]" "title:string[255]" "slug:string[191]" body:text published:boolean created modified
bin/cake bake migration CreateTags "title:string[191]" created modified
bin/cake bake migration CreateArticlesTags "article_id:integer[11]" "tag_id:integer[11]"
バージョン番号がバッティングしてエラー吐くから名前を変える
# src/config/Migrations
mv 202311080555_TableName.php 202311080600_TableName.php
#数字が被ってなければ大丈夫
Dockerコンテナの中でマイグレする
ローカル環境と違いコンテナの中じゃないとマイグレできない
docker-compose exec web bash
bin/cake migrations migrate
テーブルが正しく作成されているか確認する
#DockerだからDBがあるコンテナに入ってからポスグレコマンド
docker exec -it cakecms-db-1 psql -U ikaten_cakecms -d ikaten_cakecmsdb
\dt
List of relations
Schema | Name | Type | Owner
--------+---------------+-------+----------------
public | articles | table | ikaten_cakecms
public | articles_tags | table | ikaten_cakecms
public | phinxlog | table | ikaten_cakecms
public | tags | table | ikaten_cakecms
public | users | table | ikaten_cakecms
(5 rows)
#phixclogはマイグレしたら勝手にできる
テーブルが作成できたことを確認できたら次はシーディングを行いテーブルに中身を入れる
これもチュートリアルを参考にテストデータを入れる
# シーディングファイル作成
# src/config/Seedsに作成される
bin/cake bake seed Users
bin/cake bake seed Articles
UsersSeed.php
<?php
declare(strict_types=1);
use Migrations\AbstractSeed;
/**
* Users seed.
*/
class UsersSeed extends AbstractSeed
{
/**
* Run Method.
*
* Write your database seeder using this method.
*
* More information on writing seeds is available here:
* https://book.cakephp.org/phinx/0/en/seeding.html
*
* @return void
*/
public function run(): void
{
$data = [
[
'email' => 'cakephp@example.com',
'password' => 'secret', // 実際にはハッシュ化する
'created' => date('Y-m-d H:i:s'),
'modified' => date('Y-m-d H:i:s'),
]
];
$table = $this->table('users');
$table->insert($data)->save();
}
}
// ArticlesSees.phpも同じように入力する
シーディングを行いテーブルにデータを入れる
こちらもコンテナに入ってからシーディングしないといけない
bin/cake migrations seed --seed UsersSeed
bin/cake migrations seed --seed ArticlesSeed
次は最初のモデルを作っていく
Discussion