【问题标题】:ActiveRecord::StatementInvalid -- Mysql2::Error: Table 'database.table_that_I_want_to_create' doesn't existActiveRecord::StatementInvalid -- Mysql2::Error: 表 'database.table_that_I_want_to_create' 不存在
【发布时间】:2014-07-10 14:29:53
【问题描述】:

我正在尝试执行:

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) }

有人有想法吗?

非常感谢

【问题讨论】:

  • 你能发布迁移代码吗?他们有些不对劲。不看迁移文件就很难判断。
  • 感谢迈克的帮助。

标签: mysql ruby-on-rails ruby activerecord database-migration


【解决方案1】:

我终于明白问题出在哪里了: - 我在初始化文件中有一个全局变量的实例: $MY_GLOBAL_VARIABLE = TableThatIWantToCreate.find(1)

我了解到,当我们调用“rake db:migrate”时,rails 会在执行迁移之前启动应用程序的上下文(包括初始化程序文件)。 在我的情况下,实例化仍然是不可能的,因为用于此实例化的表尚不存在。

感谢那些关注我的问题的人。 :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-15
    • 2016-09-13
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2013-05-29
    相关资源
    最近更新 更多