MySQL ORM peewee的數據庫遷移管理peewee

peewee是一個單文件的MySQL ORM庫,使用peewee_migrate管理數據庫遷移,使用peewee_async異步操作數據庫(配合tornado).

1 datum.py 數據庫定義

from datetime import datetimefrom werkzeug.security import generate_password_hash, check_password_hashfrom peewee import Model, CharField, DateTimeField, BooleanField, IntegerField, FloatField, SmallIntegerFieldfrom configs import configimport peewee_async

實例化,需要安裝aiomysql,在tornado.web.Application定義時綁定異步操作的對象.database = peewee_async.PooledMySQLDatabase(

<code>config.get('mysql_db'), host=config.get('mysql_host'), port=config.get('mysql_port'),
user=config.get('user'), password=config.get('pwd'),
min_connections=10,
max_connections=50
/<code>

)

class BaseModel(Model):

<code>"""模型基類,為每個模型補充創建時間與更新時間"""
create_time = DateTimeField(default=datetime.now, formats='%Y-%m-%d %H:%M:%S', verbose_name='創建時間') # 記錄的創建時間
update_time = DateTimeField(default=datetime.now, formats='%Y-%m-%d %H:%M:%S', verbose_name='更新時間') # 記錄的更新時間

/<code>

class User(BaseModel):

<code>"""用戶"""

# 1 基本信息
cell_phone = CharField(max_length=11, unique=True, null=False, verbose_name='手機號') # 手機號

share_code = CharField(max_length=8, unique=True, verbose_name='邀請碼') # 邀請碼
normal = BooleanField(default=True, verbose_name='用戶狀態') # 是否正常,默認正常,用戶要求凍結用戶,可凍結

class Meta:
database = database
db_table = 'uc_user'
/<code>

2 vcm.py 版本管理

-- coding: utf-8 --

"""數據庫遷移管理,更新字段後直接運行該文件"""import sysimport os.path

sys.path.append(os.path.join(os.path.dirname(__file__), '..'))from peewee_migrate import Routerfrom db import datumfrom db.datum import database

database.connect()

router = Router(database, ignore='basemodel')

router.create(auto=datum)router.run()database.close()

NOTE:vcm.py datum.py在db這個python package裡,數據庫定義字段改變,直接運行vcm.py即可更新.


MySQL ORM peewee的數據庫遷移管理peewee_migrate


最後小編幫助大家整理了一套python教程,下面展示了部分,希望也能幫助對編程感興趣,想做數據分析,人工智能、爬蟲或者希望從事編程開發的小夥伴,畢竟python工資也還可以,如果能幫到你請點贊、點贊、點贊哦~~

MySQL ORM peewee的數據庫遷移管理peewee_migrate

MySQL ORM peewee的數據庫遷移管理peewee_migrate


分享到:


相關文章: