我正在尝试执行:
rake db:migrate RAILS_ENV=production
(在此迁移中有5个迁移文件,包括创建表database.table_that_I_want_to_create
)
我遇到以下错误:
Error message:
Mysql2::Error: Table 'database.table_that_I_want_to_create' doesn't exist: SHOW FULL FIELDS FROM `table_that_I_want_to_create` (ActiveRecord::StatementInvalid)
Exception class:
ActiveRecord::StatementInvalid
第一行堆栈是:
0 /usr/local/lib/ruby/gems/1.9.1/gems/activerecord-3.2.11/lib/active_record/connection_adapters/abstract_mysql_adapter.rb 245 in `query'
abstract_mysql_adapter.rb 245
=> log(sql, name) { @connection.query(sql) }
有没有人有想法?
非常感谢
答案 0 :(得分:0)
我终于明白了问题所在: - 我在初始化文件中有一个全局变量的实例化: $ MY_GLOBAL_VARIABLE = TableThatIWantToCreate.find(1)
据我所知,当我们调用“rake db:migrate'”时,rails会在执行迁移之前启动应用程序的上下文(包括初始化程序文件)。 在我的情况下,实例化仍然是不可能的,因为用于此实例化的表尚不存在。
感谢那些了解我的问题的人。 : - )