gpt4 book ai didi

ruby-on-rails-3 - 将 activeuuid gem 用于 rails 中的现有数据库

转载 作者:行者123 更新时间:2023-12-02 04:58:30 25 4
gpt4 key购买 nike

我需要实现 activeuuid gem 以使用 UUID 而不是默认的 Rails id。我们可以实现它来创建新的迁移:

 class CreateStudents < ActiveRecord::Migration
def change
create_table :students, :id => false do |t|
t.uuid :id, :primary_key => true
t.string :name
t.string :email

t.timestamps
end
end
end

在模型中,我们将 ActiveUUID::UUID 包含为:

class Student < ActiveRecord::Base
attr_accessible :email, :name
include ActiveUUID::UUID
end

现在我已经有了一个数据库,那么我如何实现 activeuuid gem 以使用 UUID 而不是现有数据库的默认 Rails id?需要对所有迁移进行更改还是什么?在这方面需要帮助。谢谢

最佳答案

UUID 存储为带 16 个位置的二进制字段,如我在此处找到的:https://github.com/jashmenn/activeuuid/blob/master/lib/activeuuid/patches.rb#L62

它对我有用(没有记录的现有表):

def change
reversible do |dir|
change_table :payments do |t|
dir.up { t.change :id, :binary, limit: 16, :primary_key => true }
dir.down { t.change :id, :integer }
end
end
end

不要忘记将这些行也添加到您的模型中:

include ActiveUUID::UUID
natural_key :at_least_one_field_here

github 存储库中的更多信息:https://github.com/jashmenn/activeuuid/

关于ruby-on-rails-3 - 将 activeuuid gem 用于 rails 中的现有数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19152162/

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