pydal2sql-core 0.4.0

Last updated:

0 purchases

pydal2sql-core 0.4.0 Image
pydal2sql-core 0.4.0 Images
Add to Cart

Description:

pydal2sqlcore 0.4.0

pydal2sql-core







Companion library for pydal2sql containing the actual logic.
The other library only serves as a Typer-based CLI front-end.
More Documentation coming soon!
Table of Contents

Installation
As a Python Library
License

Installation
pip install pydal2sql-core

As a Python Library
pydal2sql-core also exposes a generate_sql method that can perform the same actions on one (for CREATE) or two (for
ALTER) pydal.Table objects when used within Python.
from pydal import DAL, Field
from pydal2sql_core import generate_sql

db = DAL(None, migrate=False) # <- without running database or with a different type of database

person_initial = db.define_table(
"person",
Field(
"name",
"string",
notnull=True,
),
Field("age", "integer", default=18),
Field("float", "decimal(2,3)"),
Field("nicknames", "list:string"),
Field("obj", "json"),
)

print(
generate_sql(
db.person, db_type="psql" # or sqlite, or mysql; Optional with fallback to currently using database type.
)
)

CREATE TABLE person
(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name VARCHAR(512),
age INTEGER,
float NUMERIC(2, 3),
nicknames TEXT,
obj TEXT
);

person_new = db.define_table(
"person",
Field(
"name",
"text",
),
Field("birthday", "datetime"),
redefine=True
)

generate_sql(
person_initial,
person_new,
db_type="psql"
)

ALTER TABLE person
ADD "name__tmp" TEXT;
UPDATE person
SET "name__tmp"=name;
ALTER TABLE person DROP COLUMN name;
ALTER TABLE person
ADD name TEXT;
UPDATE person
SET name="name__tmp";
ALTER TABLE person DROP COLUMN "name__tmp";
ALTER TABLE person
ADD birthday TIMESTAMP;
ALTER TABLE person DROP COLUMN age;
ALTER TABLE person DROP COLUMN float;
ALTER TABLE person DROP COLUMN nicknames;
ALTER TABLE person DROP COLUMN obj;

License
pydal2sql-core is distributed under the terms of the MIT license.

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.