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

标签 mysql ruby-on-rails ruby sqlite

我正在尝试更改 Rails 应用程序数据库中的表,但遇到了以下问题 -

rake 中止! StandardError:发生错误,此迁移和所有后续迁移均已取消:

nil:NilClass 的未定义方法 to_sym' 你的意思? to_s/Users/Michael/MWCoding/MamaKnows/mama_knows/db/migrate/20160415190242_remove_organiser_description_from_events.rb:3:in更改' NoMethodError:nil:NilClass 的未定义方法“to_sym” 你的意思?至_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

最佳答案

修复迁移文件上错误的属性organiser_profile,然后如果删除数据库对您来说不是问题,请在命令行中执行以下操作:

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

关于mysql - Rails 迁移错误 - SQLite 数据库无法删除或添加列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36655597/

相关文章:

ruby - 我们如何使用 Puppet 提供程序来应用 shell 命令?

html - 自动完成以及如何让它理解小写和大写

ruby-on-rails - 如何使用 Rspec 测试带有嵌套路由的 Controller ?

Mysql:更新以创建间隔不超过最大分钟数的访问条目组

php - 在 MySQL 中更新表行的问题

mysql - 如何使用Rails手动连接MYSQL数据库?

ruby-on-rails - Rails for XML 中的布局

ruby - 如何在 Liquid 中将时间戳转换为字符串?

mysql - 从 mysql 查询 Node-RED 返回的 msg.payload 获取值

php - 为什么 PDO 的结果是两个嵌套数组以及如何使用它们