rake db:migrateとcomponent_initのデフォルトインストール先
rake db:migrate -> development
script/component_init -> production
なので、set RAILS_ENV=xxxxxx してからmigrateとcomponent_initするのが吉。
(以下詳細)
rake db:migrateすると、デフォでdevelopment環境にテーブル類が生成されるが、
component_initではデフォでproduction環境に生成しようとするので、何も指定しないでrake -> component_initと実行するとエラーになってしまう。
C:\work\NetBeans65\bizca>rake db:migrate (in C:/work/NetBeans65/bizca) == RubricksCoreSchema001: migrating =========================================== -- adapter_name() -> 0.0000s : == RubricksCoreSchema020: migrating =========================================== -- create_table(:mt_configs, {:force=>true}) -> 0.0620s == RubricksCoreSchema020: migrated (0.1560s) ================================== C:\work\NetBeans65\bizca> C:\work\NetBeans65\bizca> C:\work\NetBeans65\bizca>ruby script\component_init org C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb:128:in `log': Mysql::Error: Table 'bizca_ dt.rubricks_components' doesn't exist: SHOW FIELDS FROM rubricks_components (ActiveRecord::StatementInvalid) from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:243:in `execute' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/connection_adapters/mysql_adapter.rb:348:in `columns' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:763:in `columns' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:776:in `column_names' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:789:in `column_methods_hash' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:1265:in `all_attributes_exists?' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/../../activesupport/lib/active_support/inflector.rb:250:in `all?' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:1265:in `each' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:1265:in `all?' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:1265:in `all_attributes_exists?' from C:/work/NetBeans65/bizca/vendor/rails/activerecord/lib/active_record/base.rb:1199:in `method_missing' from script/component_init:25 from script/component_init:23:in `each' from script/component_init:23 C:\work\NetBeans65\bizca> C:\work\NetBeans65\bizca>
production環境指定でmigrateしてからcomponent_initする。
C:\work\NetBeans65\bizca>rake environment RAILS_ENV=production db:migrate (in C:/work/NetBeans65/bizca) == RubricksCoreSchema001: migrating =========================================== : == RubricksCoreSchema020: migrated (0.1720s) ================================== C:\work\NetBeans65\bizca>ruby script\component_init org org installed.
できましたw
一方、component_initをdevelopment指定でやるには、、script/serverみたいに -e developmentとかできないみたいだし、、
結局、コンソールで環境変数を設定して実行した。
C:\work\NetBeans65\bizca>set RAILS_ENV=development C:\work\NetBeans65\bizca>ruby script\component_init org org installed.
ちなみに、test環境は、rake db:test:prepareでdevelopment環境からスキームをコピーしてくれるそう。
だけど、、これだと初期データの類が入ってなくて。。。><
C:\work\NetBeans65\bizca>rake db:test:prepare (in C:/work/NetBeans65/bizca) C:\work\NetBeans65\bizca>
仕方ないんで、環境変数指定してrake db:migrate + component_initしました。