Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What is going on with this article?
@shunjikonishi

HerokuでプロダクションDBと開発用DBのスキーマを比較する

More than 5 years have passed since last update.

要件

開発用DBとプロダクションDBで一部文字列カラムの長さが異なっていることが発覚したため検証を行った。(evolution用のSQLの内容が元のスキーマに反映されていなかったと思われる)

ただし、開発用DBは常にALTER TABLEで列追加されているのに対し、プロダクションDBではその中間段階でCREATE TABLEしているため、カラムの順番は無視する必要がある

herokuのpg:psqlコマンドでは-cオプションでSQLを即時実行できるので、スキーマ取得のコマンドを発行してそのdiffを取れば良い。

\dだと列の順序が無視できないので、システムテーブルのinformation_schema.columnsテーブルからSELECTする

コマンド

APP_NAMEの部分を適宜書き換えればすぐに使えます。

heroku pg:psql -a APP_NAME -c "select table_schema as sch, table_name as tbl, column_name as col, column_default as def, is_nullable as null, data_type as type, character_maximum_length as maxlen, numeric_precision as npc, numeric_precision_radix as npcr, numeric_scale as ns, datetime_precision as dp from information_schema.columns where table_schema = 'public' order by tbl, col;" > APP_NAME.txt
5
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
givery
Giveryは社会を豊かにする人々のための成長エコシステムを創造する「成長」支援企業です。ITとリアルの両軸で事業を展開し、お客様・ユーザーの皆様・社員・社会の成長を全力で応援します。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
5
Help us understand the problem. What is going on with this article?