关于 运行 rake db:seed 任务的问题

Issue regarding running rake db:seed task

我有一个现有的 rails 项目,我正在使用 postgres 数据库,在成功执行 bundle exec rake db:migrate 命令后,我将要执行 bundle exec rake db:seed命令然后它抛出以下错误。

耙子中止! PG::DuplicateTable:错误:关系 "schema_migrations" 已经存在

我已经注释掉了存储 schema_migration table 创建的定义的行,例如在 development_structure.sql 和 test_structure.sql 文件中。但它仍然向我抛出错误。

我不知道 schema_migration table 是从哪里创建的。我的项目中没有 schema_migration.rb 文件。

请帮我解决这个问题。提前致谢!

这是我的错误日志。

  rake aborted!
  PG::DuplicateTable: ERROR:  relation "schema_migrations" already exists
 : CREATE TABLE "schema_migrations" ("version" character varying(255) NOT NULL) 
 /home/bit/.rvm/gems/ruby-2.1.5/gems/activerecord-2.3.18/lib/active_record/connection_adapters/abstract_adapter.rb:227:in `rescue in log'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/activerecord-2.3.18/lib/active_record/connection_adapters/abstract_adapter.rb:204:in `log'
 /home/bit/Development/app2/application/lib/core_extensions/postgresql_adapter/reconnect.rb:26:in `execute'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/activerecord-2.3.18/lib/active_record/connection_adapters/abstract/schema_statements.rb:109:in `create_table'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/activerecord-2.3.18/lib/active_record/connection_adapters/abstract/schema_statements.rb:371:in `initialize_schema_migrations_table'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/activerecord-2.3.18/lib/active_record/migration.rb:441:in `initialize'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/rails-2.3.18/lib/tasks/databases.rake:193:in `new'
 /home/bit/.rvm/gems/ruby-2.1.5/gems/rails-2.3.18/lib/tasks/databases.rake:193:in `block (2 levels) in <top (required)>'
 /home/bit/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `eval'
 /home/bit/.rvm/gems/ruby-2.1.5/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => db:seed => db:seed:common => db:seed:original =>    db:abort_if_pending_migrations
(See full trace by running task with --trace)

如果可以在本地删除数据,请尝试

rake db:drop db:create db:migrate

然后再播种。我过去遇到过类似的问题,我删除了一个迁移而没有正确回滚它,这就是解决方案。

如果您需要保留它,请打开 rails 数据库(rails db 来自终端)并尝试

drop table schema_migrations

(运行 在此之后再次使用 db:migrate 迁移)

编辑:这还没有解决问题,但似乎还有其他问题需要考虑。OP 无法启动 rails 控制台并接收

undefined local variable or method `vars' for #<Rails::Generator::Commands::Create:0x00000001ca2578>

作为每次的错误信息-如果有人在这里有想法,请添加答案!