sqlalchemy Alembic 學習筆記

2022-07-20 16:09:10 字數 2441 閱讀 2746

前一段時間 一直用sqlalchemy-migrate

這個工具來做migrate,不過感覺不太好用。

今天開始學習alembic 這個工具,由sqlalchemy 的作者一手開發的。

官方tutorial:

一: 安裝 

ubuntu@yee:~$ sudo pip install alembic

二、初始化:

ubuntu@yee:~/project$ alembic init alembic

回到project 主目錄 :

vim alembic.ini

#a generic, single database configuration.

[alembic]

#path to migration scripts

script_location =alembic

#template used to generate migration files

#file_template = %%(rev)s_%%(slug)s

#set to 'true' to run the environment during

#the 'revision' command, regardless of autogenerate

#revision_environment = false

#sqlalchemy.url = driver://user:pass@localhost/dbname

sqlalchemy.url = mysql://root:*********@localhost:3306/dbname

三、使用

alembic revision -m "

create

friendship

table

"

vim alembic/versions/96274508199_create_friendship_table.py

import datetime

defupgrade():

op.create_table(

'friendship',

sa.column('id',sa.integer,primary_key=true),

sa.column('me',sa.integer,sa.foreignkey('users.id')),

sa.column('friend',sa.integer,sa.foreignkey('users.id')),

sa.column('created', sa.datetime, nullable=false,default=datetime.datetime.now()),

def

downgrade():

op.drop_table(

'friendship

')

四、生成表:

alembic upgrade head

例二:新增字段:

def

upgrade():

op.add_column(

'users

', sa.column('

created

',sa.datetime,default=datetime.datetime.now(),nullable=false))

op.add_column(

'users

', sa.column('

last_login

' ,sa.string(250),nullable=false))

op.add_column(

'users

', sa.column('

registration_ip

' ,sa.string(250),nullable=false))

op.add_column(

'users

', sa.column('

last_login_ip

' ,sa.string(250),nullable=false))

defdowngrade():

op.drop_column(

'users

', '

created')

op.drop_column(

'users

', '

last_login')

op.drop_column(

'users

', '

registration_ip')

op.drop_column(

'users

', '

last_login_ip

')

alembic upgrade +1

C Primer Chapter One學習筆記

筆記 1.流 從io裝置上讀入或寫出的字串行,用來說明字元隨時間順序生成或消耗。2.輸入輸出符可連用原因 operator 或operator 返回stream物件。3.要測試程式那個語句出錯,使用cout 4.新建乙個內建型別,如int i 0 最好先初始化,不然用到的時候沒初始化會產生奇怪的錯誤...

BroadcastReceiver學習筆記

需要注意 的是,不要在 onreceive 方法中新增過多的邏輯或者進行任何的耗時操作,因為在廣播接收 器中是不允許開啟執行緒的,當 onreceive 方法執行了較長時間而沒有結束時,程式就會報錯。有序broadcast,sendorderedbroadcast intent,null abort...

CDISC SDTM SE domain 學習筆記

整理翻譯自 sdtm ig 3.2 www.cdisc.org sdtm se subject elements 鞏固每個subject的epochs和elements的起止時間點.se對於有多個 時期的試驗有著重要的用處 如crossover試驗 se包含乙個subject從乙個element進入...