Rails じゃない project の rake で activerecord を使う。
Rails じゃない project の rake で activerecord を使う。
rails だと rake に db:drop, db:create, db:migrate などのタスクが実行できます。
Rails を使っていない project で 同様のタスクを定義してみました。
See https://github.com/katoy/using_ar
Database も 2 つ扱ってみています。
Database: db1_development
table: users
Database: db2_development
table: infos
のような DB / table を
create、migrate、fixuter 読み込み、table 内容の表示
するタスクを定義しました。
$ rake -T dbs
rake dbs:create # create database "db1_{AR_ENV}", "db2_#{AR_ENV}"
rake dbs:create_db1 # create database "db1_{AR_ENV}"
rake dbs:create_db2 # create database "db2_{AR_ENV}"
rake dbs:drop # drop all table in database "db1_{AR_ENV}, db2_{AR_ENV}"
rake dbs:drop_db1 # drop all table in database "db1_{AR_ENV}
rake dbs:drop_db2 # drop all table in database "db2_{AR_ENV}
rake dbs:fixtures # Load fixtures into "db1_#{AR_ENV}, db2_#{AR_ENV}", Load specific fixtures using FIXTURES=x,y
rake dbs:migrate # Migrate the database through scripts in db/migrate, Target specific version with VERSION=x
rake dbs:reset # Reset db1, db2 (drop, create, migrate, fixtures)
rake dbs:show # Show db1_#{AR_ENV}
rake dbs:show_db2 # Show db2_#{AR_ENV}
ファイル構成
├── Gemfile
├── Gemfile.lock
├── Rakefile
├── config
│ └── database.yml
├── db
│ └── migrate
│ ├── db1
│ │ └── 20150322042600_create_users.rb
│ └── db2
│ └── 20150322043000_create_infos.rb
├── log
└── test
└── fixtures
├── db1
│ └── users.yml
└── db2
└── infos.yml
Rails の db 関係のフォルダ構成を真似してます。
config/database.yml は Rails と同じ設定内容です。
RAILS_ENV の代わりに AR_ENV をつかって 環境 (productio/development/test) を切り替えられます。
password などは <%= ENV('AR_PASSWORD') %> と書いておくことができます。
(rake を実行する前に export AR_PASSOWRD="xxxx" のように設定しておきます)
db/migrateion には、 Database 毎に Folder を分けて置いています。
test/fixtures にも、 Database 毎に Folder を分けて置いています。
Author And Source
この問題について(Rails じゃない project の rake で activerecord を使う。), 我々は、より多くの情報をここで見つけました https://qiita.com/katoy/items/689d0a5822ad6a1768c4著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .