創用 CC 授權條款
除非另有註明,本網站的著作Fygul Hether製作,以創用CC 姓名標示-非商業性-禁止改作 4.0 國際 授權條款釋出。

2018年1月1日 星期一

sqlacodegen: Automatic model code generator for SQLAlchemy

使用SQLAlchemy時,需要自行編寫個models.py,其中是資料表格的定義,若資料表格很多,就要寫不少東西。

如果懶得自己寫代碼,可先用資料庫的圖形管理軟體定義好所要的資料庫結構之後產生一個實際的資料庫,再利用sqlacodegen從這資料庫產生models.py。例如使用SQLite資料庫,可利用像〈四款SQLite圖形界面管理軟體〉之類的工具,產生所要的資料庫。

也就是若有既有的資料庫,sqlacodegen會讀取即有資料庫的結構,自動產生SQLAlchemy用的models.py代碼。

本文簡單介紹sqlacodegen的使用。

安裝sqlacodegen


# pip install sqlacodegen

用法

假定SQLite 3資料庫是example.db,拿之前那篇〈SQLAlchemy〉的資料庫當例子:

sqlacodegen sqlite:///example.db
這會將代碼輸出在螢幕上。若要結果存檔則是:

sqlacodegen sqlite:///exampler.db > models.py
或者:

sqlacodegen --outfile models.py sqlite:///example.db
所產生的結果如下:

# coding: utf-8
from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base


Base = declarative_base()
metadata = Base.metadata


class User(Base):
    __tablename__ = 'user'

    id = Column(Integer, primary_key=True)
    name = Column(String(60), nullable=False)
sqlacodegen的完整選項:

sqlacodegen --help
在Linux上使用,sqlacodegen可能會被裝在使用者的目錄下:

~/.local/bin/sqlacodegen -h

參考

  • https://pypi.python.org/pypi/sqlacodegen

沒有留言:

張貼留言