build / Garde-fou (pull_request) Failing after 7s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (pull_request) Skipped
build / Images Harbor (web, Dockerfile) (pull_request) Skipped
build / Garde-fou (push) Failing after 8s
build / Images Harbor (catalog-sync, Dockerfile.catalog-sync) (push) Skipped
build / Images Harbor (web, Dockerfile) (push) Skipped
74 lines
3.0 KiB
Python
74 lines
3.0 KiB
Python
"""Socle : comptes, projets, partages, soumissions.
|
|
|
|
Revision ID: 0001
|
|
Revises:
|
|
"""
|
|
|
|
import sqlalchemy as sa
|
|
from alembic import op
|
|
|
|
revision = "0001"
|
|
down_revision = None
|
|
branch_labels = None
|
|
depends_on = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
op.create_table(
|
|
"utilisateurs",
|
|
sa.Column("id", sa.Integer(), primary_key=True),
|
|
sa.Column("sujet", sa.String(255), nullable=False, unique=True),
|
|
sa.Column("email", sa.String(320), server_default=""),
|
|
sa.Column("nom", sa.String(255), server_default=""),
|
|
sa.Column("administrateur", sa.Boolean(), server_default=sa.false()),
|
|
sa.Column("cree_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
sa.Column("vu_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
)
|
|
|
|
op.create_table(
|
|
"projets",
|
|
sa.Column("id", sa.Integer(), primary_key=True),
|
|
sa.Column("utilisateur_id", sa.Integer(), sa.ForeignKey("utilisateurs.id"), nullable=False),
|
|
sa.Column("nom", sa.String(255), server_default="Projet sans nom"),
|
|
sa.Column("contenu", sa.Text(), nullable=False),
|
|
sa.Column("cree_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
sa.Column("maj_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
)
|
|
op.create_index("ix_projets_utilisateur", "projets", ["utilisateur_id"])
|
|
|
|
op.create_table(
|
|
"partages",
|
|
sa.Column("id", sa.String(32), primary_key=True),
|
|
sa.Column("contenu", sa.Text(), nullable=False),
|
|
sa.Column("nom", sa.String(255), server_default=""),
|
|
sa.Column("utilisateur_id", sa.Integer(), sa.ForeignKey("utilisateurs.id"), nullable=True),
|
|
sa.Column("cree_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
sa.Column("expire_le", sa.DateTime(timezone=True), nullable=False),
|
|
sa.Column("vues", sa.Integer(), server_default="0"),
|
|
)
|
|
op.create_index("ix_partages_expire", "partages", ["expire_le"])
|
|
|
|
op.create_table(
|
|
"soumissions",
|
|
sa.Column("id", sa.Integer(), primary_key=True),
|
|
sa.Column("utilisateur_id", sa.Integer(), sa.ForeignKey("utilisateurs.id"), nullable=False),
|
|
sa.Column("pack_id", sa.String(64), nullable=False),
|
|
sa.Column("categorie", sa.String(32), nullable=False),
|
|
sa.Column("nom", sa.String(255), server_default=""),
|
|
sa.Column("contenu", sa.Text(), nullable=False),
|
|
sa.Column("message", sa.Text(), server_default=""),
|
|
sa.Column("statut", sa.String(16), server_default="en_attente"),
|
|
sa.Column("reponse", sa.Text(), server_default=""),
|
|
sa.Column("url_pr", sa.String(512), server_default=""),
|
|
sa.Column("cree_le", sa.DateTime(timezone=True), server_default=sa.func.now()),
|
|
sa.Column("traite_le", sa.DateTime(timezone=True), nullable=True),
|
|
)
|
|
op.create_index("ix_soumissions_statut", "soumissions", ["statut"])
|
|
|
|
|
|
def downgrade() -> None:
|
|
op.drop_table("soumissions")
|
|
op.drop_table("partages")
|
|
op.drop_table("projets")
|
|
op.drop_table("utilisateurs")
|