gpt4 book ai didi

ruby-on-rails - Rails 中的迁移(sqlite)

转载 作者:行者123 更新时间:2023-12-03 18:31:45 25 4
gpt4 key购买 nike

嘿,我的 rake 有一个小问题

class CreateEvents < ActiveRecord::Migration

def self.up
create_table :events do |t|
t.integer :broadcast_id
t.integer :position
t.string :title
t.string :location
t.string :link
t.text :description
t.datetime :time
end
add_foreign_key :events, :broadcast_id, :broadcasts
end

def self.down
remove_foreign_key :events, :broadcast_id, :broadcasts
drop_table :events
end

end

问题 => add_foreign_key :events, :broadcast_id, :broadcasts

$ rake db:迁移
== CreateEvents: migrating ===================================================
-- create_table(:events)
-> 0.0021s
-- add_index(:events, :broadcast_id)
-> 0.0004s
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: near "FOREIGN": syntax error: ALTER TABLE "events" ADD FOREIGN KEY ("broadcast_id") REFERENCES "broadcasts"(id)

最佳答案

你为什么要这样定义外键?

如果你想要你的 Events 之间的关系和 Broadcasts那么你应该考虑创建一个事件记录关系。就像是

# Event model
class Event < ActiveRecord::Base
belongs_to :broadcast
end

# Broadcast model
class Broadcast < ActiveRecord::Base
has_many :events
end

这样,您就可以让 rails 为您维护外键关系。查看 Rails Guide有关事件记录关联的更多信息。

关于ruby-on-rails - Rails 中的迁移(sqlite),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5091299/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com