【问题标题】:SQLException: near "references": syntax error: ALTER TABLE "questions" ADD "video" referencesSQLException:“参考”附近:语法错误:ALTER TABLE“问题”添加“视频”参考
【发布时间】:2013-08-14 18:04:06
【问题描述】:

我试过“AddvideoToQuestions video: references"

一个问题有_many 个视频。一个视频属于一个问题。

试图耙db:migrate,并得到以下错误。

怎么样?我终于深入研究 Rails 编码(我的第一种真正的语言),这个错误一直困扰着我。

SQLite3::SQLException: 在“引用”附近:语法错误:ALTER TABLE “问题”添加“视频” 参考资料/Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in `初始化'

@Marek Lipka -- 尝试过并再次尝试 rake db:migrate,但仍然是同样的错误。

以下是日志:

(抱歉——不熟悉如何呈现代码块。

QLite3::SQLException:“引用”附近:语法错误:ALTER TABLE “问题”添加“视频” 参考资料/Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in initialize' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in new' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:91:in prepare' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/sqlite3-1.3.7/lib/sqlite3/database.rb:134:in 执行' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/sqlite_adapter.rb:278:in block in execute' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:280:inblock in log' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activesupport-3.2.3/lib/active_support/notifications/instrumenter.rb:20:in instrument' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract_adapter.rb:275:inlog' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/sqlite_adapter.rb:278:in execute' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/schema_statements.rb:264:in add_column' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/sqlite_adapter.rb:400:in add_column' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:466:inblock in method_missing' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:438:in block in say_with_time' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:438:insay_with_time' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:458:in method_missing' /Users/davidngo/Desktop/Coding/RoR_Practice/videxpert/db/migrate/20130809091631_add_video_to_question.rb:3:in change' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:407:in block (2 levels) in migrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:407:inblock in migrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/connection_pool.rb:119:in with_connection' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:389:inmigrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:528:in migrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:720:inblock (2 级) in migrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:775:in call' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:775:inblock in ddl_transaction' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/connection_adapters/abstract/database_statements.rb:192:in transaction' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/transactions.rb:208:intransaction' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:775:in ddl_transaction' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:719:inblock in migrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:700:in each' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:700:inmigrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:570:in up' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/migration.rb:551:inmigrate' /Users/davidngo/.rvm/gems/ruby-1.9.3-p429/gems/activerecord-3.2.3/lib/active_record/railties/databases.rake:153:in `块(2级)'

【问题讨论】:

    标签: ruby-on-rails migration sqlexception


    【解决方案1】:

    试试这个:

    bundle exec rails g migration add_video_to_questions video:references
    

    【讨论】:

      【解决方案2】:

      我相信这已经得到了回答: Rails 3 migrations: Adding reference column?

      话虽如此,我也遇到了类似的问题。 我无法告诉你到底出了什么问题,但这是我解决问题的方法:

      rails g 迁移 add_video_id_to_questions video_id:integer

      【讨论】:

        猜你喜欢
        • 2018-03-14
        • 1970-01-01
        • 2011-05-11
        • 1970-01-01
        • 1970-01-01
        • 2018-11-21
        • 1970-01-01
        • 2016-05-01
        • 2012-12-23
        相关资源
        最近更新 更多