django資料庫分庫migrate

2022-03-31 10:58:09 字數 1334 閱讀 6897

最近在研究微服務和分布式,設計到了資料庫分庫,記錄一下

首先,建立多個資料庫,如果是已經生成的資料庫,可以分庫,這裡我是新建立的專案,剛好可以用來嘗試

我是用docker建立的mysql資料庫容器

拉取docker映象:

docker pull mysql:5.7

建立容器:

docker run --name=mysql5.7 -p 13306:3306 -e mysql_root_password=123456 -d mysql:5.7

databases = 

},'sale':

},'order':

}}

分庫之後,在settings.py同級目錄下,建立乙個databaserouter

# example:

'sale': 'sale',

'order': 'order',

'admin': 'default',

'auth': 'default',

'contenttypes': 'default',

'sessions': 'default',

} def db_for_read(self, model, **hints):

""""point all read operations to the specific database."""

return none

def db_for_write(self, model, **hints):

"""point all write operations to the specific database."""

return none

def allow_relation(self, obj1, obj2, **hints):

if db_obj1 and db_obj2:

if db_obj1 == db_obj2:

return true

else:

return false

return none

def allow_syncdb(self, db, model):

return false

return none

"""database.

"""return false

return none

class meta:
最後就是migrate資料庫了,先makemigrations order,然後migrate --database order

資料庫分庫分表

1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...

資料庫分庫 分表

分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...

資料庫分庫分表

簡單了解資料庫分庫分表,以及資料庫的分片 什麼是分庫分表 原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存在到多個表上 為什麼分庫分表 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的花,我想啃根會死在那。分表的目的就在於此,減少資料庫的負擔,縮短查...