我是Ruby on Rails的新手,我猜我的问题的答案很简单,但我找不到它.我最近创建了一个项目并使用了"rails generate scaffold ...",一切正常.我想在数据库中添加另一列,所以我使用了"rails generate migration ...."之后一切都运行良好.我停止服务器并重新启动它后,问题就出现了.现在我得到这个错误Psych :: BadAlias无法加载Rails.application.database_configuration:未知别名:默认
我发现这个请求一个ruby-on-rails应用程序给出了Psych :: BadAlias错误,但我没有看到明确的答案.
这是我的database.yml文件的样子......
#
<<: *default
database: db/development.sqlite3
test:
<<: *default
database: db/development.sqlite3_test
production:
<<: *default
database: db/development.sqlite3_production
Run Code Online (Sandbox Code Playgroud)
这是我进行迁移后生成的文件
class AddHardwareToComputers < ActiveRecord::Migration
def change
add_column :computers, :hardware, :string
end
end
Run Code Online (Sandbox Code Playgroud)
这是我的schema.rb
ActiveRecord::Schema.define(version: 20140723203054) do
create_table "computers", force: true do |t|
t.string "name"
t.string "serial_number"
t.string "user"
t.datetime "created_at"
t.datetime "updated_at"
t.string "hardware"
end
end
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢.
小智 5
我知道这是一个老问题,但我一直在寻找同样的问题,并使用 jvnill 的 + CocoHot 的建议解决了这个问题,并进行了小幅修正。我没有足够的分数来评论,所以我将修改后的解决方案添加为新答案。
首先,变化&defaults到&default(单数); 第二,因为你正在使用sqlite3的(如我),更换适配器mysql2使用sqlite3。
defaults: &default
adapter: sqlite3
encoding: utf8
development:
<<: *default
database: db/development.sqlite3
test:
<<: *default
database: db/development.sqlite3_test
production:
<<: *default
database: db/development.sqlite3_production
Run Code Online (Sandbox Code Playgroud)
您的 yaml 文件应包含默认配置,如下所示
defaults: &default
adapter: mysql2
encoding: utf8
development:
<<: *default
database: app_development
test:
<<: *default
database: app_test
Run Code Online (Sandbox Code Playgroud)
编辑:2020 年 4 月 22 日
defaults为default以使其不那么混乱。| 归档时间: |
|
| 查看次数: |
25137 次 |
| 最近记录: |