次世代DBマイグレーションツール「sqldef」
先々月くらいにPrismaを知り、関連の記事をいろいろ書いていました。 prisma-client-pythonでpythonからORMを楽にやる prisma client pythonが実行しているNodeはどこにあるのか prismaでfactoryboyみたいなやつが作りたい ただ、最近Rustを触ることが多くてPrismaの使いどころがマイグレーションぐらいしかないのでちょっとしょんぼりしてたんですが、関連してちょっと気になるツールを見つけたので勉強がてら紹介します。 GitHub - sqldef/sqldef: Idempotent schema management for MySQL, PostgreSQL, and more このツールを使うと、Prismaでいうschema.prismaをSQLファイルで管理できるようになるとのこと! すごい柔軟性!!!!! つまり、1つのSQLファイルと現在のDBを比較して、追加・変更・削除されたテーブルや列などの差分情報を読み取り、マイグレーションを行ってくれるという感じです。 ちなみに、sqlx関連で調べて見ていた参考にしていたブログはこちら。 [Rust] sqlxを使ってみる #Database - Qiita インストール まずは使用しているUbuntuにダウンロードしてみます。 私は普段使いがPostgresなので、以下のコマンドでpsqldefをインストールします。 curl -OL https://github.com/k0kubun/sqldef/releases/download/v0.16.9/psqldef_linux_amd64.tar.gz sudo tar xf psqldef_linux_amd64.tar.gz -C /usr/local/bin/ インストールできたか確認してみます。 % psqldef --help Usage: psqldef [option...] db_name Application Options: -U, --user=username PostgreSQL user name (default: postgres) -W, --password=password PostgreSQL user password, overridden by $PGPASSWORD -h, --host=hostname Host or socket directory to connect to the PostgreSQL server (default: 127.0.0.1) -p, --port=port Port used for the connection (default: 5432) --password-prompt Force PostgreSQL user password prompt -f, --file=filename Read schema SQL from the file, rather than stdin (default: -) --dry-run Don't run DDLs but just show them --export Just dump the current schema to stdout --enable-drop-table Enable destructive changes such as DROP (enable only table drops) --before-apply= Execute the given string before applying the regular DDLs --config= YAML file to specify: target_tables, skip_tables --help Show this help --version Show this version ヘルプコマンドが表示されたので、ちゃんとインストールできましたね。 ...