为什么在尝试使用数字和数据库名称下划线时出现“ActiveRecord :: NoDatabaseError:未知数据库”错误?

时间:2016-12-22 09:04:22

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

我正在使用 ruby​​-2.2.4 Rails 4.2.5 MySQL 5.7.16 在我的Ruby on Rails应用程序中使用gem mysql2 。我创建了名为123_4的数据库,并在/config/database.yml中设置了数据库名称。

为什么我在尝试ActiveRecord::NoDatabaseError: Unknown database '1234'时收到错误rake db:migrate

如果我尝试运行rake db:create,将创建名为1234的数据库。

如果我使用123_abc4作为数据库名称,一切都很好。

我的database.yml内容:

production: 
   adapter: mysql2 
   database: 123_4 
   host: localhost 
   username: user 
   password: "pass" 
   encoding: utf8

1 个答案:

答案 0 :(得分:2)

  

标识符可以以数字开头,但除非引用可能不仅仅由数字组成。

MySQL Schema Object Name

因此,您可以使用123_abc4,因为它包含字母。

如果它只包含数字,则需要引用它:'123_4'