Mysql 为什么在数据库名称中使用数字和下划线时出现`ActiveRecord::NodeDatabaseError:Unknown database`错误?
在我的RubyonRails应用程序中,我正在使用ruby-2.2.4、Rails 4.2.5和MySQL 5.7.16以及gemmysql2。我已经创建了名为Mysql 为什么在数据库名称中使用数字和下划线时出现`ActiveRecord::NodeDatabaseError:Unknown database`错误?,mysql,ruby-on-rails,database,rails-activerecord,Mysql,Ruby On Rails,Database,Rails Activerecord,在我的RubyonRails应用程序中,我正在使用ruby-2.2.4、Rails 4.2.5和MySQL 5.7.16以及gemmysql2。我已经创建了名为123_4的数据库,并在/config/database.yml中设置了数据库名称 为什么在尝试rake db:migrate时出现错误ActiveRecord::NoDatabaseError:未知数据库“1234” 如果我尝试运行rakedb:create将创建名为1234的数据库 如果我使用123_abc4作为数据库名称,一切都很好
123_4
的数据库,并在/config/database.yml
中设置了数据库名称
为什么在尝试rake db:migrate时出现错误ActiveRecord::NoDatabaseError:未知数据库“1234”
如果我尝试运行rakedb:create
将创建名为1234
的数据库
如果我使用123_abc4
作为数据库名称,一切都很好
我的数据库.yml
内容:
production:
adapter: mysql2
database: 123_4
host: localhost
username: user
password: "pass"
encoding: utf8
标识符可以以数字开头,但除非引用,否则不能仅由数字组成
因此,您可以使用123_abc4
,因为它包含字母
如果它只包含数字,您需要引用它:
'123_4'
您可以显示您的数据库吗。yml?添加到问题列表中。这可能是rails中的一个bug吗?开一期怎么样?我不知道是rails还是active record bug。您能在您的环境中复制它吗?@Abhi,谢谢您的链接,但这只是惯例,没有参考MySQL文档。如果您感兴趣,请查看Thanh Huynh的答案谢谢,@ThanhHuynh。你的回答澄清了错误的原因