Rails迁移错误 - SQLite数据库无法删除或添加列

时间:2016-04-15 19:41:16

标签: mysql ruby-on-rails ruby sqlite

我试图更改我的Rails应用数据库中的表格,并且遇到以下问题 -

耙子流产了! StandardError:发生错误,此以及所有后续迁移都已取消:

未定义的方法to_sym' for nil:NilClass Did you mean? to_s/Users/Michael/MWCoding/MamaKnows/mama_knows/db/migrate/20160415190242_remove_organiser_description_from_events.rb:3:in更改' NoMethodError:未定义的方法`to_sym'为零:NilClass 你的意思是? to_s

我尝试过回滚和迁移:重做,我一无所获,担心我现在别无选择,只能做一滴。我认为错误是在早期迁移之后我使用了不正确的列类型。

我如何从这里前进?我对Rails相当新,并且从未完成数据库丢弃,因此不太确定该过程。任何帮助将非常感激。

上次从错误代码迁移的代码 -

class RemoveOrganiserDescriptionFromEvents < ActiveRecord::Migration
  def change
    remove_column :events, :organiser_description, :text
  end
end

活动表 -

    class CreateEvents < ActiveRecord::Migration
  def change
    create_table :events do |t|
      t.string :title
      t.string :location
      t.date :date
      t.time :time
      t.text :description
      t.string :organised_by
      t.text :organiser_description

      t.timestamps null: false
    end
  end
end

在schema.rb文件中没有显示事件表,在它的位置我有以下文字 -

# Could not dump table "events" because of following NoMethodError
#   undefined method `[]' for nil:NilClass

从SQLite开始,运行PRAGMA table_info(events);

0|id|INTEGER|1||1
1|title|varchar|0||0
2|location|varchar|0||0
3|date|date|0||0
4|time|time|0||0
5|description|text|0||0
6|organised_by|varchar|0||0
7|created_at|datetime|1||0
8|updated_at|datetime|1||0
9|user_id|integer|0||0
10|image_file_name|varchar|0||0
11|image_content_type|varchar|0||0
12|image_file_size|integer|0||0
13|image_updated_at|datetime|0||0
14|category_id|integer|0||0
15|url|varchar|0||0
16|number_of_spaces|integer|0||0
17|price|integer|0||0
18|is_free|boolean|0||0
19|organiser_profile|url|0||0

1 个答案:

答案 0 :(得分:0)

在迁移文件上修复错误的属性organiser_profile,然后在命令行中执行drop database不是问题:

bundle exec rake db:drop db:create db:migrate