Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Rails正在查找database.yml未指定的数据库_Mysql_Ruby On Rails_Activerecord_Devise - Fatal编程技术网

Mysql Rails正在查找database.yml未指定的数据库

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”,没有“.

我最近提取了一些代码并运行了rspec。测试顺利通过。然而,当我运行“rakedb:migrate”和“rakedb:prepare”时,我遇到了一个问题

现在没有rspec测试通过,每次失败都会引发相同的错误:

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
,这不是我所期望的:)然后我猜我的搜索方向错了。对不起,朋友,祝你好运