ざっくりSQLiteを速習してみました(業務では全く、個人的にも全く触ってなかったので)。 ほぼ覚え書き程度なので、ちゃんとした内容はちゃんとしたところで調べてください(笑
確認
sqlite3 -version
なかったらインストール
sudo dnf install sqlite
database領域作成&接続
sqlite3 test.db
DDL流し込み
てけとうに
## テーブルの確認 .tables ## スキーマ(テーブル情報)の表示(テーブル名省略すると、全部出る?) .schema [テーブル名] ## databaseの確認(やっとくとPHPの時のDSN作るの楽) .databases ## 列名を表示 .header on ## モード変更して見やすく .mode column ## こっちは \G みたいな感じ .mode line ## SQLファイルを読み込んで実行 .read ファイル.sql ## バックアップ .backup backup.YYMMDD.db ## リストア .restore backup.YYMMDD.db ## 抜ける( ctrl-C でもいけるけど) .q
PHPで雑接続
<?php $dsn = 'sqlite:/home/gallu/test/test.db'; $pdo = new PDO($dsn); var_dump($pdo);
型 覚え書き
varcharとか指定できるらしいのですが内部的には以下にそろえられちゃうようです。
NULL NULL型 REAL 浮動小数点 INTEGER 整数 TEXT 任意の文字列 BLOB 任意のバイナリデータ
phinx確認
composer require robmorgan/phinx vendor/bin/phinx init mkdir -p db/migrations db/seeds
phinx.php
return [ 'paths' => [ 'migrations' => '%%PHINX_CONFIG_DIR%%/db/migrations', 'seeds' => '%%PHINX_CONFIG_DIR%%/db/seeds' ], 'environments' => [ 'default_migration_table' => 'phinxlog', 'default_environment' => 'development', 'development' => [ 'adapter' => 'sqlite', 'name' => '/home/gallu/test/test.db', ], ], 'version_order' => 'creation' ];
って書いたら /home/gallu/test/test.db.sqlite3 ってなった。拡張子 .sqlite3 がデフォでつくぽい。 後は大体一緒ぽ。 多分汎用的に考えて
return [ 'paths' => [ 'migrations' => '%%PHINX_CONFIG_DIR%%/db/migrations', 'seeds' => '%%PHINX_CONFIG_DIR%%/db/seeds' ], 'environments' => [ 'default_migration_table' => 'phinxlog', 'default_environment' => 'development', 'development' => [ 'adapter' => 'sqlite', 'name' => __DIR__ . '/test.db', ], ], 'version_order' => 'creation' ];
がいいんだろうなぁ直下に置くかどうかはともかくとして __DIR__ 使えば、どこにおいても問題ないし。
マイグレーションの確認。
php vendor/bin/phinx create TestTable
public function change(): void { $table = $this->table('test'); $table->addColumn('name', 'string') ->addColumn('str', 'string', ['limit' => 128]) ->addColumn('str2', 'varbinary', ['limit' => 128]) ->addColumn('num', 'integer', ['comment' => 'コメント']) ->addColumn('num2', 'biginteger') ->addColumn('created_at', 'datetime') ->create(); }
で
php vendor/bin/phinx migrate --dry-run
からの
php vendor/bin/phinx migrate
ですんなり。 うん大体把握。なんかでチャンスあったら使ってみるかねぇ?