Mysql Rails正在查找database.yml未指定的数据库
我最近提取了一些代码并运行了rspec。测试顺利通过。然而,当我运行“rakedb:migrate”和“rakedb:prepare”时,我遇到了一个问题 现在没有rspec测试通过,每次失败都会引发相同的错误:Mysql Rails正在查找database.yml未指定的数据库,mysql,ruby-on-rails,activerecord,devise,Mysql,Ruby On Rails,Activerecord,Devise,我最近提取了一些代码并运行了rspec。测试顺利通过。然而,当我运行“rakedb:migrate”和“rakedb:prepare”时,我遇到了一个问题 现在没有rspec测试通过,每次失败都会引发相同的错误: Mysql2::Error: Table 'app_test.admins' doesn't exist: SHOW FULL FIELDS FROM `admins` 问题是,在代码中的任何地方都没有指定数据库名称。在database.yml中,指定了“app_test”,没有“.
Mysql2::Error: Table 'app_test.admins' doesn't exist: SHOW FULL FIELDS FROM `admins`
问题是,在代码中的任何地方都没有指定数据库名称。在database.yml中,指定了“app_test”,没有“.admins”后缀
类似地,当我运行rails服务器时,会出现以下错误:
Mysql2::Error: Table 'app_dev.admins' doesn't exist: SHOW FULL FIELDS FROM `admins`
yml中仅指定了“app_dev”
rake命令(db:migrate、db:test:prepare、db:create、db:drop等)都在修改database.yml指定的数据库,只是Rails正在查找后缀为“.admins”的数据库。“.admins”后缀来自何处?如何删除它?是rake db:prepare a valid command吗?您尝试过rake db:create:all吗?rake db:prepare是有效的命令吗?您是否尝试过rake db:create:all?是否可以将缓存的
rails设置配置为使用admin
表?你还记得键入rails g settings admin吗
在模型中签入admin.rb文件,或签入从RailsSettings::CachedSettings派生的模型
同时检查同一gem的初始值设定项是否可能将缓存的rails设置
配置为使用admin
表?你还记得键入rails g settings admin吗
在模型中签入admin.rb文件,或签入从RailsSettings::CachedSettings派生的模型
检查同一gem的初始值设定项app\u test和app\u dev是数据库名称
只是Rails正在寻找带有“.admins”的数据库
后缀
实际上,app_test.admins和app_dev.admins是rails在这两个数据库中查找的表。我将尝试以下几种方法:
rake db:create
rake db:migrate
或
app_test和app_dev是数据库名称
只是Rails正在寻找带有“.admins”的数据库
后缀
实际上,app_test.admins和app_dev.admins是rails在这两个数据库中查找的表。我将尝试以下几种方法:
rake db:create
rake db:migrate
或
问题如下:
无论出于何种原因,当我提取代码时,“Admins”表从db/schema.rb
中消失。无法通过rake:db:migrate还原该表,因为创建该表的迁移使用了t.database\u authenticable
,该表已被弃用,不再适用于designe gem。因为我们是在遗留代码的基础上构建的,所以我们只对最近更改的迁移运行rake db:migrate
,从不从空数据库运行(对于空数据库,我们使用rake db:schema:load
)
由于db/schema.rb中缺少该表,因此即使使用rake db:schema:load
,也不会恢复该表。为了解决这个问题,我不得不使用git reset
恢复到db/schema.rb
的旧版本
要解决设备弃用问题,以便您可以运行所有迁移,请转到此处-问题如下:
无论出于何种原因,当我提取代码时,“Admins”表从db/schema.rb
中消失。无法通过rake:db:migrate还原该表,因为创建该表的迁移使用了t.database\u authenticable
,该表已被弃用,不再适用于designe gem。因为我们是在遗留代码的基础上构建的,所以我们只对最近更改的迁移运行rake db:migrate
,从不从空数据库运行(对于空数据库,我们使用rake db:schema:load
)
由于db/schema.rb中缺少该表,因此即使使用rake db:schema:load
,也不会恢复该表。为了解决这个问题,我不得不使用git reset
恢复到db/schema.rb
的旧版本
要解决设备弃用问题,以便您可以运行所有迁移,请转到此处-显示GemFile pleaseGemfile-显示GemFile pleaseGemfile-当rake db:test:prepare
有效时,rake db:prepare
无效rake db:create:all
未修复该问题,而rake db:test:prepare
有效,rake db:prepare
无效rake db:create:all
没有修复该问题,我没有键入该命令,但有一个模型派生自RailsSettings::CachedSettings
。我如何才能将这些设置更改为不使用.admins
表格?在发布答案之前,我需要知道模型的名称该模型名为settings
,这不是我所期望的:)然后我猜我的搜索方向错了。抱歉,老兄,good luckI没有键入该命令,但有一个模型派生自RailsSettings::CachedSettings
。我如何才能将这些设置更改为不使用.admins
表格?在发布答案之前,我需要知道模型的名称该模型名为settings
,这不是我所期望的:)然后我猜我的搜索方向错了。对不起,朋友,祝你好运