fix(migration)
This commit is contained in:
@@ -19,17 +19,28 @@ depends_on: Union[str, Sequence[str], None] = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
# Ajouter la colonne avec nullable=True d'abord
|
||||
op.add_column('events', sa.Column('is_private', sa.Boolean(), nullable=True))
|
||||
# Mettre à jour toutes les lignes existantes avec False
|
||||
op.execute("UPDATE events SET is_private = FALSE WHERE is_private IS NULL")
|
||||
# Rendre la colonne non-nullable avec une valeur par défaut
|
||||
op.alter_column('events', 'is_private',
|
||||
existing_type=sa.Boolean(),
|
||||
nullable=False,
|
||||
server_default='false')
|
||||
# ### end Alembic commands ###
|
||||
# Vérifier si la colonne existe déjà (cas où la migration initiale l'a déjà créée)
|
||||
bind = op.get_bind()
|
||||
inspector = sa.inspect(bind)
|
||||
columns = [col['name'] for col in inspector.get_columns('events')]
|
||||
|
||||
if 'is_private' not in columns:
|
||||
# Ajouter la colonne avec nullable=True d'abord
|
||||
op.add_column('events', sa.Column('is_private', sa.Boolean(), nullable=True))
|
||||
# Mettre à jour toutes les lignes existantes avec False
|
||||
op.execute("UPDATE events SET is_private = FALSE WHERE is_private IS NULL")
|
||||
# Rendre la colonne non-nullable avec une valeur par défaut
|
||||
op.alter_column('events', 'is_private',
|
||||
existing_type=sa.Boolean(),
|
||||
nullable=False,
|
||||
server_default='false')
|
||||
else:
|
||||
# La colonne existe déjà, juste s'assurer qu'elle a les bonnes propriétés
|
||||
# Vérifier si elle est nullable et la corriger si nécessaire
|
||||
op.alter_column('events', 'is_private',
|
||||
existing_type=sa.Boolean(),
|
||||
nullable=False,
|
||||
server_default='false')
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
|
||||
Reference in New Issue
Block a user