Skip to main content

pgsqlx-generator is a model code generator from tables for PgSqlx.

Project description

Install

pip install pgsqlx-generator

Usage Sample

from pgsqlx.generator import Generator


if __name__ == '__main__':
    coder = Generator(host='127.0.0.1', port='3306', user='xxx', password='xxx', database='test')
    # you can generate a model class for one table
    coder.generate_with_tables(tables='user', path='models.py')
    # you can generate model classes for tables
    coder.generate_with_tables(tables=['user', 'person'], path='models.py')
    # you can generate model classes for all tables from a given schema. default current schema if not given
    coder.generate_with_schema(schema='test', path='models.py')

If you run last code, then generate a file ‘models.py’ in current directory like follow:

from decimal import Decimal
from datetime import date, datetime
from pgsqlx.orm import Model, PkStrategy


class BaseModel(Model):
    __pk__ = 'id'
    __del_flag__ = 'del_flag'
    __update_by__ = 'update_by'
    __update_time__ = 'update_time'
    __pk_strategy__ = PkStrategy.DB_AUTO_INCREMENT

    def __init__(self, id: int = None, create_by: int = None, create_time: datetime = None, update_by: int = None, update_time: datetime = None,
            del_flag: int = None):
        self.id = id
        self.create_by = create_by
        self.create_time = create_time
        self.update_by = update_by
        self.update_time = update_time
        self.del_flag = del_flag


class Person(BaseModel):
    __table__ = 'person'
    __key_seq__ = 'person_id_seq'

    def __init__(self, id: int = None, name: str = None, age: int = None, birth_date: date = None, sex: int = None, grade: float = None,
            point: float = None, money: Decimal = None, create_by: int = None, create_time: datetime = None, update_by: int = None,
            update_time: datetime = None, del_flag: int = None):
        super().__init__(id=id, create_by=create_by, create_time=create_time, update_by=update_by, update_time=update_time, del_flag=del_flag)
        self.name = name
        self.age = age
        self.birth_date = birth_date
        self.sex = sex
        self.grade = grade
        self.point = point
        self.money = money

PgSqlx: https://pypi.org/project/pgsqlx

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pgsqlx-generator-1.6.5.tar.gz (4.9 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page