LoginSignup
14
16

More than 5 years have passed since last update.

Ridgepole を PostgreSQL と組み合わせて使う

Last updated at Posted at 2014-09-02

クックパッド開発者ブログで紹介されていたデータベーススキーマ管理ツール Ridgepole を PostgreSQL と組み合わせて利用した際の備忘録

検証環境

  • CentOS 6.5
  • Ruby 2.1.2
  • Bundler 1.6.2

Ridgepole セットアップ

PostgreSQL に接続するのが目的だが Ridgepole が MySQL のライブラリをデフォルトで要求することに注意。

依存ライブラリインストール:

$ sudo yum install -y postgresql-devel mysql-devel

Ridgepole を動かすディレクトリと Gemfile を用意:

$ mkdir ridgepole-pgsql
$ cd rigepole-pgsql
$ cat Gemfile
source 'https://rubygems.org'
gem 'ridgepole'
gem 'pg'

インストール:

$ bundle install --path vendor/bundle

データベースへの接続設定を追加:

$ cat database.yml
adapter: postgresql
encoding: utf8
port: 5432
database: example
username: foo
password: bar 

PostgreSQL サーバに接続して各種操作を行う

スキーマのエクスポート:

$ bundle exec ridgepole --config database.yml \
  --export --output=Schemafile \
  --disable-mysql-unsigned  # Postgres に接続するため MySQL のオプションを無効にする

スキーマの分割エクスポート:

$ mkdir schema
$ bundle exec ridgepole --config database.yml \
  --export --split --output schema/Schemafile \
  --disable-mysql-unsigned

テーブル定義の変更の適用:

$ vi Schemafile # スキーマを編集
$ bundle exec ridgepole \
    --config database.yml \
    --file Schemefile --apply \
    --disable-mysql-unsigned

参考

14
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
16