校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > 使用Ruby on Rails和PostgreSQL自動生成UUID的教程

使用Ruby on Rails和PostgreSQL自動生成UUID的教程

熱門標簽:百度地圖標注自定義圖片 滴滴外呼系統 地圖標注賺錢項目注冊 常德電銷平臺外呼系統軟件價格 高德地圖標注客服 電銷機器人廠商代理 白銀外呼paas系統 湖州u友防封電銷卡 徐州網絡外呼系統哪個好

Rails 4 能原生態的支持Postgres 中的UUID(Universally Unique Identifier,可通用的唯一標識符)類型。在此,我將向你描述如何在不用手工修改任何Rails代碼的情況下,用它來生成UUID。

首先,你需要激活Postgres的擴展插件‘uuid-ossp':
 

class CreateUuidPsqlExtension  ActiveRecord::Migration
 def self.up
  execute "CREATE EXTENSION \"uuid-ossp\";"
 end
 
 def self.down
  execute "DROP EXTENSION \"uuid-ossp\";"
 end
end

你可以用UUID作為一個ID來進行替換:

 

create_table :translations, id: :uuid do |t|
 t.string :title
 t.timestamps
end

在此例中,翻譯表會把一個UUID作為ID來自動生成它。Postgresq的uuid-ossp擴展插件所用算法和生成UUID的算法是不同的。Rails 4缺省使用的是v4算法. 你可以在這里: http://www.postgresql.org/docs/current/static/uuid-ossp.html 看到更多有關這些算法的細節。


然而,有時候你不想用UUID作為ID來進行替換。那么,你可以另起一列來放置它:
 

class AddUuidToModelsThatNeedIt  ActiveRecord::Migration
 def up
  add_column :translations, :uuid, :uuid
 end
 
 def down
  remove_column :invoices, :uuid
 end
end

這會創建一個放置UUID的列,但這個UUID不會自動生成。你不得不在Rails中用SecureRandom來生成它。但是,我們認為這是一個典型的數據庫職責行為。值得慶幸的是,add_column中的缺省選項會幫我們實現這種行為:

 

class AddUuidToModelsThatNeedIt  ActiveRecord::Migration
 def up
  add_column :translations, :uuid, :uuid, :default => "uuid_generate_v4()"
 end
 
 def down
  remove_column :invoices, :uuid
 end
end

現在,UUID能被自動創建了。同理也適用于已有記錄!

您可能感興趣的文章:
  • 詳細講解PostgreSQL中的全文搜索的用法
  • 使用Bucardo5實現PostgreSQL的主數據庫復制
  • 在PostgreSQL的基礎上創建一個MongoDB的副本的教程
  • 在PostgreSQL中使用數組時值得注意的一些地方
  • 在PostgreSQL中使用日期類型時一些需要注意的地方
  • 一個提升PostgreSQL性能的小技巧
  • 在PostgreSQL中實現遞歸查詢的教程
  • 在PostgreSQL上安裝并使用擴展模塊的教程
  • 介紹PostgreSQL中的范圍類型特性
  • 深入解讀PostgreSQL中的序列及其相關函數的用法

標簽:梧州 遼寧 永州 公主嶺 普洱 荊門 三沙 張家界

巨人網絡通訊聲明:本文標題《使用Ruby on Rails和PostgreSQL自動生成UUID的教程》,本文關鍵詞  使用,Ruby,Rails,和,PostgreSQL,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用Ruby on Rails和PostgreSQL自動生成UUID的教程》相關的同類信息!
  • 本頁收集關于使用Ruby on Rails和PostgreSQL自動生成UUID的教程的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 玉溪市| 琼中| 肇东市| 新民市| 镶黄旗| 会理县| 武夷山市| 聊城市| 仪征市| 汝城县| 靖西县| 峨边| 延安市| 武川县| 屏东市| 科技| 安西县| 韶山市| 保亭| 霍邱县| 大同县| 奇台县| 永年县| 连云港市| 昭苏县| 五指山市| 湖州市| 天台县| 灵川县| 邹城市| 宁化县| 酉阳| 锡林郭勒盟| 仪陇县| 阜宁县| 齐河县| 塘沽区| 昌邑市| 贵港市| 上犹县| 额敏县|