Skip to content

Instantly share code, notes, and snippets.

@utamori
Last active November 6, 2020 02:03
Show Gist options
  • Save utamori/fcda44e280c1b557792ffb82d46b4e5f to your computer and use it in GitHub Desktop.
Save utamori/fcda44e280c1b557792ffb82d46b4e5f to your computer and use it in GitHub Desktop.

スキーママイグレーション

PostgreSQL 対応

sqldef などは mysql 用の vitess を使っている

vittess の sqlparser の source を拡張して作られている。 information_schema.table_constraints の情報を元に create 文を build Web 開発を支えるマイグレーションツールについて / sqldef introduction for psql users - Speaker Deck

vittess の pg 完全対応は 2021~2022 年?

PostgreSQL support? · Issue #479 · vitessio/vitess

vittess の postgre バージョンのプロジェクトとして citus がある(つかえるかは不明) citusdata/citus: Distributed PostgreSQL as an extension - for multi-tenant and real-time analytics workloads

git-schemlex と ddl-maker を使った DB migration の紹介 / git-schemalex and ddl-maker migration #golangtokyo - Speaker Deck

todo 以下を調査する pgsqldef

Operation SQL Supported
Create a new table CREATE TABLE ✔️
Rename an existing table ALTER TABLE + RENAME ng
Delete an existing table DROP TABLE ✔️
Add a column to an existing table ALTER TABLE + ADD COLUMN ✔️
Rename an existing column ALTER TABLE + RENAME COLUMN ng
Delete an existing column ALTER TABLE + DROP COLUMN ✔️
Set primary keys (IDs) PRIMARY KEY ✔️
Define relations (foreign keys) FOREIGN KEY + REFERENCES ✔️
Make columns optional/required NOT NULL ✔️
Set unique constraints UNIQUE ✔️
Set default values DEFAULT ✔️
Define enums ENUM ✔️
Create indexes CREATE INDEX ✔️
Cascading deletes ON DELETE ng
Cascading updates ON UPDATE ng
Data validation CHECK ng

postgres

DB スキーマを駆動にした開発のためのライブラリ調査 | フューチャー技術ブログ

joncrlsn/pgdiff: Compares the PostgreSQL schema between two databases and generates SQL statements that can be run manually against the second database to make their schemas match.

db ドライバー

lib/pq がデファクトだが、いろんな問題が山積みで、今後改善される見込みもない pqx を前提にした方が良さそう

parser

postgre

mysql

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment