我的数据库迁移有什么问题?

时间:2012-09-26 01:42:39

标签: ruby-on-rails database sqlite

我正在努力创造一种能够创造一系列研究的情境。所以我有一个名为Series的表。每个系列都有一个名字。每个系列也has_many :parts。所以我有一个名为Part的表,它是belongs_to :series。然后是每个部分has_many :questions和我的问题表belongs_to :part。我必须将这些表中的每一个相互归属,所以我有这样的迁移设置:

 class CreateSeries < ActiveRecord::Migration
   def self.up
     create_table :series do |t|
       t.string :name


       t.timestamps
     end
   end
   def self.down
       drop_table :series
   end
 end


class CreateParts < ActiveRecord::Migration
  def self.up
    create_table :parts do |t|
       t.date :date
       t.string :book
       t.integer :series_id

       t.timestamps
  end
    add_index :parts, [:series_id, :created_at]
  end

  def self.down
    drop_table :parts
  end
end



  class CreateQuestions < ActiveRecord::Migration
     def self.up
         create_table :questions do |t|
            t.text :body
            t.integer :part_id

            t.timestamps
         end
            add_index :questions, [:part_id, :created_at]
      end

      def self.down
         drop_table :questions
      end
   end

所以我迁移了数据库并使用SQLite数据库浏览器,我的问题表有一个parts_id。我的Parts表应该有一个series_id列,但它没有。有人可以帮忙解决这个问题吗?谢谢。

2 个答案:

答案 0 :(得分:1)

我想知道为什么系列列不在您的数据库中。如果我可以调用它,请尝试再次运行模型生成器。这次运行就像这样

rails g model part date:date book series:belongs_to,看看你是否遇到同样的问题。我希望这有帮助。或者您也可以使用控制台窗口进行检查,尝试使用随机序列ID创建一个新部件,并检查它是否存在复数问题。

答案 1 :(得分:0)

打开应用程序控制台rails c并输入Part

您应该看到属性series_id

如果这样做,解决方案就是重新启动服务器。

相关问题