Choose your API

Know which API you are using.

Asqueel and Asqueel Migration are evolving independently. This site introduces their roles and makes the development course available to read. Match executable examples to their source version.

The database layer

Asqueel supports synchronous PostgreSQL and SQLite access, model declarations, SQL compilation and explicit transaction control. Backend-specific SQL expressions remain backend-specific.

Coming soon: MySQL and Microsoft SQL Server (MSSQL) support in the Asqueel query/runtime layer.

The development course includes the unified model, to-many aggregations, write-cycle hooks, relation actions and operational APIs. These capabilities must not be inferred from the version number alone: the course checkout and the earlier 0.6.0 checkout both declare the same package version, but their APIs differ.

Course compatibility

The original course uses the write-cycle development API, captured at commit f7208dc. All 34 lessons are available to read. The opening video now starts with a welcome, a virtual environment and installation, then uses one Python console: declare a product table directly, migrate SQLite in memory, insert, query, update, add columns, migrate again and import CSV data from a string. Each action follows a spoken statement of its purpose.

Upcoming release preview: this opening demonstration was executed against the in-memory experiment (d4fbb05, PR #38). At the latest installation check, python -m pip install "asqueel[migration]" installed Asqueel 0.5.2, which does not include this API. The video shows the standard installation intended for the upcoming official release. The first three videos use this API. Their end-to-end installation verification remains pending; do not expect the current PyPI package to run this example yet. The executable database commands, preservation of existing rows and absence of database files have been verified on the experimental source.

The opening demonstration has English AI narration, captions, speed controls and thirteen chapters, ending with thanks and the introduction of the next lesson. It reconstructs executed commands with edited timing. Its database lasts only as long as the Python connection; no model file, model subclass or persistent database file is needed. The download contains the console commands and setup instructions.

The second video continues from that product catalogue. It adds customer city, invoice invoice_date, and row quantity, unit_price and total. Four downloadable CSV files populate 30 products (the original three plus 27 new ones), eight customers, twelve invoices and 36 invoice rows. Dates are parsed from ISO text; prices become Decimal directly from strings. The import calculates and stores each row total as quantity times unit price, rounded to two decimal places. This is an ordinary stored column: changing quantity or price requires recalculating it.

The second demonstration follows customer and product relations, including a two-hop path to the customer city. Eighteen checks verify counts, every date and total, retained products, foreign-key rejection and absence of model/database files. Its thirteen chapters focus on importing and reading; explicit column aliases are omitted because Asqueel assigns result names automatically. Individual CSV downloads and the complete bundle include the exact lesson-one bootstrap.

The third video uses those same paths in where and order_by: filter invoices by customer city, sort by city, show the newest invoice rows with DESC, then combine a two-hop city filter with an invoice-date condition. Fields used for filtering or sorting need not be selected. Fourteen checks compare results with expectations independently derived from the CSV files, including all nine matching October rows before the display limit. It has seven chapters, narration, captions, speed controls and a bundle that reconstructs lessons one and two. All three lessons use a temporary in-memory database; restart from the matching bootstrap if Python was closed.

Lessons 4–34 still require their matching source checkout. Their original installation commands do not pin the development snapshot. Do not infer API compatibility from the package version alone.

The original 34 screenplays remain archived unchanged. Lessons 4–34 retain their original verification evidence; those historical checks are not presented as a fresh execution of the entire course.

The course excludes APIs that are declared but do not execute in its profile, including pyColumn, encryption, numbering, validate_*, dynamic fields, table.record(), stores and several legacy convenience operations.

Migration compatibility

The Migration source inspected for this site declares 0.3.1 as unreleased. Its changelog records a breaking SQLite file-layout change in 0.3.0: attached schemas use <schema>.db next to the main database file.

The earlier Asqueel checkout constrains Migration to <0.3. Keep the dependency constraints of your chosen Asqueel checkout; do not upgrade the migration engine independently just to match an example.

Boundaries worth knowing

Asqueel source · Migration changelog