【问题标题】:Pre-existing database with new rails application带有新 Rails 应用程序的预先存在的数据库
【发布时间】:2018-02-01 16:52:01
【问题描述】:

我在postgresql 中有一个名为exam_prep 的预先存在的数据库,我在flask 中使用它。

我创建了一个新的 Rails 应用程序,我想使用该数据库。

到目前为止,我已经运行了rake db:structure:dump,它在db 文件夹下创建了一个structure.sql

之后我运行db:structure:load,但得到以下错误:

psql:/Users/namangupta/Desktop/app/db/structure.sql:49: ERROR:  type "batch_types_enum" already exists
rake aborted!
failed to execute:
psql -v ON_ERROR_STOP=1 -q -f /Users/namangupta/Desktop/app/db/structure.sql exam_prep

Please check the output above for any errors and make sure that `psql` is installed in your PATH and has proper permissions.

/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/postgresql_database_tasks.rb:108:in `run_cmd'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/postgresql_database_tasks.rb:80:in `structure_load'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:223:in `structure_load'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:236:in `load_schema'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:255:in `block in load_schema_current'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:304:in `block in each_current_configuration'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:303:in `each_current_configuration'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/tasks/database_tasks.rb:254:in `load_schema_current'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/activerecord-5.1.4/lib/active_record/railties/databases.rake:290:in `block (3 levels) in <top (required)>'
/Users/namangupta/.rvm/gems/ruby-2.3.4/gems/rake-12.3.0/exe/rake:27:in `<top (required)>'
/Users/namangupta/.rvm/gems/ruby-2.3.4/bin/ruby_executable_hooks:15:in `eval'
/Users/namangupta/.rvm/gems/ruby-2.3.4/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:structure:load
(See full trace by running task with --trace)

我希望 Rails 使用数据库并在其中创建模型。有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails database postgresql


    【解决方案1】:

    db:structure:load rake 任务从structure.sqlschema.rb 创建表和列。您不需要运行它,因为您现有的数据库已经拥有您需要的所有表。

    下一步是创建模型文件并将它们指向适当的表。

    【讨论】:

    • 非常感谢!我如何创建指向表格的模型。我只是通过运行命令 rails g model model_name 创建了一个模型,但是当我打开 rails 控制台并尝试访问表条目时,我什么也没得到!
    • 你是否指向了config/database.yml中的原始数据库?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多