第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將PostgreSQL模式更新并部署到Heroku

將PostgreSQL模式更新并部署到Heroku

catspeake 2021-04-01 05:41:48
我有一個(gè)PostgreSQL模式,該模式駐留在一個(gè)schema.sql文件中,該文件每次在Python中啟動(dòng)數(shù)據(jù)庫(kù)連接時(shí)都會(huì)運(yùn)行??雌饋?lái)像:CREATE TABLE IF NOT EXISTS users (    id SERIAL PRIMARY KEY,    facebook_id TEXT NOT NULL,    name TEXT NOT NULL,    access_token TEXT,    created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW());該應(yīng)用程序使用他們的PostgreSQL部署在Heroku上,并且一切正?!,F(xiàn)在,如果我想稍微更改users表的結(jié)構(gòu)該怎么辦?我該怎么做最簡(jiǎn)單,最好的方法?我想為要在數(shù)據(jù)庫(kù)ALTER...中schema.sql進(jìn)行的每個(gè)更改寫(xiě)一行,但是我認(rèn)為這不是最好的方法,因?yàn)橐欢螘r(shí)間后,模式文件將充滿(mǎn)ALTERs,這將減慢我的應(yīng)用程序的速度。指示對(duì)數(shù)據(jù)庫(kù)進(jìn)行更改的部署方式是什么?
查看完整描述

2 回答

?
慕絲7291255

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

在每個(gè)連接上運(yùn)行硬編碼腳本不是處理模式管理的好方法。

您需要手動(dòng)管理模式,或者使用功能強(qiáng)大的工具將模式版本標(biāo)識(shí)符保留在數(shù)據(jù)庫(kù)中,進(jìn)行檢查,并應(yīng)用腳本來(lái)升級(jí)到下一個(gè)模式版本(如果該版本與最新版本不同)。Rails將此稱(chēng)為“遷移”,并且可以正常工作。如果您使用的是Django,它也具有模式管理功能。

如果您不使用這樣的框架,建議您編寫(xiě)自己的架構(gòu)升級(jí)腳本。用單行添加“ schema_version”表。SELECT它當(dāng)應(yīng)用程序第一次啟動(dòng)時(shí)重新部署后,如果它比當(dāng)前版本的應(yīng)用程序知道較低,為了,例如應(yīng)用更新腳本(S) schema_1_to_2,schema_2_to_3等等。

我不建議在連接時(shí)執(zhí)行此操作,也不建議在應(yīng)用啟動(dòng)時(shí)執(zhí)行此操作,或者最好將其作為特殊的維護(hù)命令執(zhí)行。如果在每個(gè)連接上都執(zhí)行此操作,則將有多個(gè)連接嘗試進(jìn)行相同的更改,并且將出現(xiàn)重復(fù)的列和各種其他混亂情況。


查看完整回答
反對(duì) 回復(fù) 2021-04-06
?
天涯盡頭無(wú)女友

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超9個(gè)贊

我使用Postgres在heroku上支持幾個(gè)django應(yīng)用程序。我只是通過(guò)PgAdmin連接并在需要更改時(shí)運(yùn)行腳本。我認(rèn)為每次建立連接時(shí)都不需要運(yùn)行腳本。


查看完整回答
反對(duì) 回復(fù) 2021-04-06
  • 2 回答
  • 0 關(guān)注
  • 223 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)