This release is a pre-release and may not be stable for production use.
forge-mvc-mssql
Backend BDD Microsoft SQL Server pour Forge, au-dessus
de pyodbc.
Depuis l'ADR-054, le cœur de Forge est agnostique BDD : il découvre le backend installé via un entry point. Ce paquet ajoute SQL Server à la liste des choix de SGBD du développeur.
!!! note "Niveau plein"
Backend au niveau plein (ADR-084, révision du 2026-07-19).
forge db:init provisionne SQL Server (--run pour exécuter), l'identité d'insertion est fiable, et l'intégration est validée en CI contre un vrai SQL Server 2022 (pilote ODBC Driver 18).
Installation
pip install forge-mvc forge-mvc-mssql
SQL Server est client-serveur : un serveur SQL Server doit être joignable
(installé, en conteneur mcr.microsoft.com/mssql/server, ou distant), et un
pilote ODBC doit être présent sur la machine cliente (par défaut
« ODBC Driver 18 for SQL Server », surchargeable via DB_ODBC_DRIVER).
Particularités gérées
- Paramètres : pyodbc utilise nativement les
?de Forge (aucune traduction). - Identité : clé primaire auto-incrémentée via
BIGINT IDENTITY(1,1). - Insertion :
lastrowidviaSCOPE_IDENTITY(), exécuté dans le même lot que l'INSERT. - Identifiants : entre crochets
[...]. - Idempotence : SQL Server n'a pas
IF NOT EXISTS; le dialecte émet des formes gardées (IF OBJECT_ID(...) IS NULLpour les tables,IF NOT EXISTS (SELECT ... FROM sys.indexes ...)pour les index). - Lignes-dict : pyodbc ne renvoie pas de dictionnaires ; l'adaptateur
convertit via
cursor.description.
Configuration
Connexion via l'environnement (DB_HOST, DB_PORT, DB_NAME, DB_APP_LOGIN,
DB_APP_PWD, et DB_ODBC_DRIVER au besoin). Un seul backend BDD par projet.
Provisioning
forge db:init génère et affiche le SQL de provisioning SQL Server
(logins d'administration et applicatif, base, users, GRANT sur
SCHEMA::dbo, table forge_migrations), en lots séparés par GO pour
sqlcmd.
forge db:init --run l'exécute avec le compte DB_ADMIN_* (qui doit
exister sur le serveur) : la base, la connexion et l'utilisateur
applicatifs et le registre des migrations sont créés.
Limites connues
- L'escape hatch
DB_APP_PRIVILEGESau-delà du DML (SELECT, INSERT, UPDATE, DELETE) est propre à MariaDB : refus explicite sur SQL Server. - L'introspection de diff compare des noms de types SQL Server : le suivi incrémental de schéma peut être imparfait.
Licence
Propriétaire (voir LICENSE). Trajectoire MIT visée à la version 1.0.0 stable.
Release files for forge-mvc-mssql 1.0.0rc8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| forge_mvc_mssql-1.0.0rc8.tar.gz | 23.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| forge_mvc_mssql-1.0.0rc8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.0 kB
Release files / forge_mvc_mssql-1.0.0rc8.tar.gz
| Download URL | forge_mvc_mssql-1.0.0rc8.tar.gz |
|---|---|
| Size | 23.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
281dbce0e5a1346780e3655e53c6a99fc75b05dfb5028d6124a00baa30bb07e7
|
|
BLAKE2b-256 checksum How to use checksums |
30b48193bf9d7a7a485b36819b86d391d3def2aef8dbe822db50694d484dccce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|
Release files / forge_mvc_mssql-1.0.0rc8-py3-none-any.whl
| Download URL | forge_mvc_mssql-1.0.0rc8-py3-none-any.whl |
|---|---|
| Size | 17.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3eb47f4479710ce2c1e3a7d4eea93bd48ba1c9501db608c7a9232c3fab5a5399
|
|
BLAKE2b-256 checksum How to use checksums |
172d7625a98a833a1d09fb68c26af7c23e641fa4813bbb73c5f4301a5e641ad9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.13
|