ざっくりSQLiteを速習してみました(業務では全く、個人的にも全く触ってなかったので)。
ほぼ覚え書き程度なので、ちゃんとした内容はちゃんとしたところで調べてください(笑
確認
sqlite3 -version
なかったらインストール
sudo dnf install sqlite
database領域作成&接続
sqlite3 test.db
てけとうに
## テーブルの確認
.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
$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
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
ですんなり。
うん大体把握。なんかでチャンスあったら使ってみるかねぇ?