updates
This commit is contained in:
@@ -0,0 +1,246 @@
|
||||
"""add_section_title_fields_to_page_content
|
||||
|
||||
Revision ID: 1444eb61188e
|
||||
Revises: ff515d77abbe
|
||||
Create Date: 2025-11-20 15:51:29.671843
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
from sqlalchemy.dialects import mysql
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '1444eb61188e'
|
||||
down_revision = 'ff515d77abbe'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_index('bookings_room_id', table_name='bookings')
|
||||
op.drop_index('bookings_status', table_name='bookings')
|
||||
op.drop_index('bookings_user_id', table_name='bookings')
|
||||
op.drop_index('ix_bookings_promotion_code', table_name='bookings')
|
||||
op.create_index(op.f('ix_bookings_booking_number'), 'bookings', ['booking_number'], unique=True)
|
||||
op.create_index(op.f('ix_bookings_id'), 'bookings', ['id'], unique=False)
|
||||
op.drop_constraint('bookings_ibfk_1', 'bookings', type_='foreignkey')
|
||||
op.drop_constraint('bookings_ibfk_2', 'bookings', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'bookings', 'rooms', ['room_id'], ['id'])
|
||||
op.create_foreign_key(None, 'bookings', 'users', ['user_id'], ['id'])
|
||||
op.drop_index('checkin_checkout_booking_id', table_name='checkin_checkout')
|
||||
op.create_index(op.f('ix_checkin_checkout_id'), 'checkin_checkout', ['id'], unique=False)
|
||||
op.create_unique_constraint(None, 'checkin_checkout', ['booking_id'])
|
||||
op.drop_constraint('checkin_checkout_ibfk_1', 'checkin_checkout', type_='foreignkey')
|
||||
op.drop_constraint('checkin_checkout_ibfk_2', 'checkin_checkout', type_='foreignkey')
|
||||
op.drop_constraint('checkin_checkout_ibfk_3', 'checkin_checkout', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'checkin_checkout', 'users', ['checkin_by'], ['id'])
|
||||
op.create_foreign_key(None, 'checkin_checkout', 'bookings', ['booking_id'], ['id'])
|
||||
op.create_foreign_key(None, 'checkin_checkout', 'users', ['checkout_by'], ['id'])
|
||||
op.drop_index('favorites_room_id', table_name='favorites')
|
||||
op.drop_index('favorites_user_id', table_name='favorites')
|
||||
op.drop_index('unique_user_room_favorite', table_name='favorites')
|
||||
op.create_index(op.f('ix_favorites_id'), 'favorites', ['id'], unique=False)
|
||||
op.drop_constraint('favorites_ibfk_1', 'favorites', type_='foreignkey')
|
||||
op.drop_constraint('favorites_ibfk_2', 'favorites', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'favorites', 'rooms', ['room_id'], ['id'])
|
||||
op.create_foreign_key(None, 'favorites', 'users', ['user_id'], ['id'])
|
||||
op.add_column('page_contents', sa.Column('luxury_gallery_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_gallery_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_testimonials_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_testimonials_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_services_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_services_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_experiences_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_experiences_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('awards_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('awards_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('partners_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('partners_section_subtitle', sa.Text(), nullable=True))
|
||||
op.alter_column('password_reset_tokens', 'used',
|
||||
existing_type=mysql.TINYINT(display_width=1),
|
||||
nullable=False,
|
||||
existing_server_default=sa.text("'0'"))
|
||||
op.drop_index('password_reset_tokens_token', table_name='password_reset_tokens')
|
||||
op.drop_index('password_reset_tokens_user_id', table_name='password_reset_tokens')
|
||||
op.drop_index('token', table_name='password_reset_tokens')
|
||||
op.create_index(op.f('ix_password_reset_tokens_id'), 'password_reset_tokens', ['id'], unique=False)
|
||||
op.create_index(op.f('ix_password_reset_tokens_token'), 'password_reset_tokens', ['token'], unique=True)
|
||||
op.drop_constraint('password_reset_tokens_ibfk_1', 'password_reset_tokens', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'password_reset_tokens', 'users', ['user_id'], ['id'])
|
||||
op.alter_column('payments', 'deposit_percentage',
|
||||
existing_type=mysql.INTEGER(),
|
||||
comment=None,
|
||||
existing_comment='Percentage of deposit (e.g., 20, 30, 50)',
|
||||
existing_nullable=True)
|
||||
op.drop_index('payments_booking_id', table_name='payments')
|
||||
op.drop_index('payments_payment_status', table_name='payments')
|
||||
op.create_index(op.f('ix_payments_id'), 'payments', ['id'], unique=False)
|
||||
op.drop_constraint('payments_ibfk_1', 'payments', type_='foreignkey')
|
||||
op.drop_constraint('payments_related_payment_id_foreign_idx', 'payments', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'payments', 'payments', ['related_payment_id'], ['id'])
|
||||
op.create_foreign_key(None, 'payments', 'bookings', ['booking_id'], ['id'])
|
||||
op.drop_index('code', table_name='promotions')
|
||||
op.drop_index('promotions_code', table_name='promotions')
|
||||
op.drop_index('promotions_is_active', table_name='promotions')
|
||||
op.create_index(op.f('ix_promotions_code'), 'promotions', ['code'], unique=True)
|
||||
op.create_index(op.f('ix_promotions_id'), 'promotions', ['id'], unique=False)
|
||||
op.drop_index('refresh_tokens_token', table_name='refresh_tokens')
|
||||
op.drop_index('refresh_tokens_user_id', table_name='refresh_tokens')
|
||||
op.drop_index('token', table_name='refresh_tokens')
|
||||
op.create_index(op.f('ix_refresh_tokens_id'), 'refresh_tokens', ['id'], unique=False)
|
||||
op.create_index(op.f('ix_refresh_tokens_token'), 'refresh_tokens', ['token'], unique=True)
|
||||
op.drop_constraint('refresh_tokens_ibfk_1', 'refresh_tokens', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'refresh_tokens', 'users', ['user_id'], ['id'])
|
||||
op.drop_index('reviews_room_id', table_name='reviews')
|
||||
op.drop_index('reviews_status', table_name='reviews')
|
||||
op.drop_index('reviews_user_id', table_name='reviews')
|
||||
op.create_index(op.f('ix_reviews_id'), 'reviews', ['id'], unique=False)
|
||||
op.drop_constraint('reviews_ibfk_2', 'reviews', type_='foreignkey')
|
||||
op.drop_constraint('reviews_ibfk_1', 'reviews', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'reviews', 'users', ['user_id'], ['id'])
|
||||
op.create_foreign_key(None, 'reviews', 'rooms', ['room_id'], ['id'])
|
||||
op.drop_index('name', table_name='roles')
|
||||
op.create_index(op.f('ix_roles_id'), 'roles', ['id'], unique=False)
|
||||
op.create_index(op.f('ix_roles_name'), 'roles', ['name'], unique=True)
|
||||
op.create_index(op.f('ix_room_types_id'), 'room_types', ['id'], unique=False)
|
||||
op.drop_index('room_number', table_name='rooms')
|
||||
op.drop_index('rooms_featured', table_name='rooms')
|
||||
op.drop_index('rooms_room_type_id', table_name='rooms')
|
||||
op.drop_index('rooms_status', table_name='rooms')
|
||||
op.create_index(op.f('ix_rooms_id'), 'rooms', ['id'], unique=False)
|
||||
op.create_index(op.f('ix_rooms_room_number'), 'rooms', ['room_number'], unique=True)
|
||||
op.drop_constraint('rooms_ibfk_1', 'rooms', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'rooms', 'room_types', ['room_type_id'], ['id'])
|
||||
op.drop_index('service_usages_booking_id', table_name='service_usages')
|
||||
op.drop_index('service_usages_service_id', table_name='service_usages')
|
||||
op.create_index(op.f('ix_service_usages_id'), 'service_usages', ['id'], unique=False)
|
||||
op.drop_constraint('service_usages_ibfk_2', 'service_usages', type_='foreignkey')
|
||||
op.drop_constraint('service_usages_ibfk_1', 'service_usages', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'service_usages', 'bookings', ['booking_id'], ['id'])
|
||||
op.create_foreign_key(None, 'service_usages', 'services', ['service_id'], ['id'])
|
||||
op.drop_index('services_category', table_name='services')
|
||||
op.create_index(op.f('ix_services_id'), 'services', ['id'], unique=False)
|
||||
op.drop_index('email', table_name='users')
|
||||
op.drop_index('users_email', table_name='users')
|
||||
op.drop_index('users_role_id', table_name='users')
|
||||
op.create_index(op.f('ix_users_email'), 'users', ['email'], unique=True)
|
||||
op.create_index(op.f('ix_users_id'), 'users', ['id'], unique=False)
|
||||
op.drop_constraint('users_ibfk_1', 'users', type_='foreignkey')
|
||||
op.create_foreign_key(None, 'users', 'roles', ['role_id'], ['id'])
|
||||
# ### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# ### commands auto generated by Alembic - please adjust! ###
|
||||
op.drop_constraint(None, 'users', type_='foreignkey')
|
||||
op.create_foreign_key('users_ibfk_1', 'users', 'roles', ['role_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_index(op.f('ix_users_id'), table_name='users')
|
||||
op.drop_index(op.f('ix_users_email'), table_name='users')
|
||||
op.create_index('users_role_id', 'users', ['role_id'], unique=False)
|
||||
op.create_index('users_email', 'users', ['email'], unique=False)
|
||||
op.create_index('email', 'users', ['email'], unique=False)
|
||||
op.drop_index(op.f('ix_services_id'), table_name='services')
|
||||
op.create_index('services_category', 'services', ['category'], unique=False)
|
||||
op.drop_constraint(None, 'service_usages', type_='foreignkey')
|
||||
op.drop_constraint(None, 'service_usages', type_='foreignkey')
|
||||
op.create_foreign_key('service_usages_ibfk_1', 'service_usages', 'bookings', ['booking_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.create_foreign_key('service_usages_ibfk_2', 'service_usages', 'services', ['service_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_index(op.f('ix_service_usages_id'), table_name='service_usages')
|
||||
op.create_index('service_usages_service_id', 'service_usages', ['service_id'], unique=False)
|
||||
op.create_index('service_usages_booking_id', 'service_usages', ['booking_id'], unique=False)
|
||||
op.drop_constraint(None, 'rooms', type_='foreignkey')
|
||||
op.create_foreign_key('rooms_ibfk_1', 'rooms', 'room_types', ['room_type_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_index(op.f('ix_rooms_room_number'), table_name='rooms')
|
||||
op.drop_index(op.f('ix_rooms_id'), table_name='rooms')
|
||||
op.create_index('rooms_status', 'rooms', ['status'], unique=False)
|
||||
op.create_index('rooms_room_type_id', 'rooms', ['room_type_id'], unique=False)
|
||||
op.create_index('rooms_featured', 'rooms', ['featured'], unique=False)
|
||||
op.create_index('room_number', 'rooms', ['room_number'], unique=False)
|
||||
op.drop_index(op.f('ix_room_types_id'), table_name='room_types')
|
||||
op.drop_index(op.f('ix_roles_name'), table_name='roles')
|
||||
op.drop_index(op.f('ix_roles_id'), table_name='roles')
|
||||
op.create_index('name', 'roles', ['name'], unique=False)
|
||||
op.drop_constraint(None, 'reviews', type_='foreignkey')
|
||||
op.drop_constraint(None, 'reviews', type_='foreignkey')
|
||||
op.create_foreign_key('reviews_ibfk_1', 'reviews', 'users', ['user_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.create_foreign_key('reviews_ibfk_2', 'reviews', 'rooms', ['room_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.drop_index(op.f('ix_reviews_id'), table_name='reviews')
|
||||
op.create_index('reviews_user_id', 'reviews', ['user_id'], unique=False)
|
||||
op.create_index('reviews_status', 'reviews', ['status'], unique=False)
|
||||
op.create_index('reviews_room_id', 'reviews', ['room_id'], unique=False)
|
||||
op.drop_constraint(None, 'refresh_tokens', type_='foreignkey')
|
||||
op.create_foreign_key('refresh_tokens_ibfk_1', 'refresh_tokens', 'users', ['user_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.drop_index(op.f('ix_refresh_tokens_token'), table_name='refresh_tokens')
|
||||
op.drop_index(op.f('ix_refresh_tokens_id'), table_name='refresh_tokens')
|
||||
op.create_index('token', 'refresh_tokens', ['token'], unique=False)
|
||||
op.create_index('refresh_tokens_user_id', 'refresh_tokens', ['user_id'], unique=False)
|
||||
op.create_index('refresh_tokens_token', 'refresh_tokens', ['token'], unique=False)
|
||||
op.drop_index(op.f('ix_promotions_id'), table_name='promotions')
|
||||
op.drop_index(op.f('ix_promotions_code'), table_name='promotions')
|
||||
op.create_index('promotions_is_active', 'promotions', ['is_active'], unique=False)
|
||||
op.create_index('promotions_code', 'promotions', ['code'], unique=False)
|
||||
op.create_index('code', 'promotions', ['code'], unique=False)
|
||||
op.drop_constraint(None, 'payments', type_='foreignkey')
|
||||
op.drop_constraint(None, 'payments', type_='foreignkey')
|
||||
op.create_foreign_key('payments_related_payment_id_foreign_idx', 'payments', 'payments', ['related_payment_id'], ['id'], onupdate='CASCADE', ondelete='SET NULL')
|
||||
op.create_foreign_key('payments_ibfk_1', 'payments', 'bookings', ['booking_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_index(op.f('ix_payments_id'), table_name='payments')
|
||||
op.create_index('payments_payment_status', 'payments', ['payment_status'], unique=False)
|
||||
op.create_index('payments_booking_id', 'payments', ['booking_id'], unique=False)
|
||||
op.alter_column('payments', 'deposit_percentage',
|
||||
existing_type=mysql.INTEGER(),
|
||||
comment='Percentage of deposit (e.g., 20, 30, 50)',
|
||||
existing_nullable=True)
|
||||
op.drop_constraint(None, 'password_reset_tokens', type_='foreignkey')
|
||||
op.create_foreign_key('password_reset_tokens_ibfk_1', 'password_reset_tokens', 'users', ['user_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.drop_index(op.f('ix_password_reset_tokens_token'), table_name='password_reset_tokens')
|
||||
op.drop_index(op.f('ix_password_reset_tokens_id'), table_name='password_reset_tokens')
|
||||
op.create_index('token', 'password_reset_tokens', ['token'], unique=False)
|
||||
op.create_index('password_reset_tokens_user_id', 'password_reset_tokens', ['user_id'], unique=False)
|
||||
op.create_index('password_reset_tokens_token', 'password_reset_tokens', ['token'], unique=False)
|
||||
op.alter_column('password_reset_tokens', 'used',
|
||||
existing_type=mysql.TINYINT(display_width=1),
|
||||
nullable=True,
|
||||
existing_server_default=sa.text("'0'"))
|
||||
op.drop_column('page_contents', 'partners_section_subtitle')
|
||||
op.drop_column('page_contents', 'partners_section_title')
|
||||
op.drop_column('page_contents', 'awards_section_subtitle')
|
||||
op.drop_column('page_contents', 'awards_section_title')
|
||||
op.drop_column('page_contents', 'luxury_experiences_section_subtitle')
|
||||
op.drop_column('page_contents', 'luxury_experiences_section_title')
|
||||
op.drop_column('page_contents', 'luxury_services_section_subtitle')
|
||||
op.drop_column('page_contents', 'luxury_services_section_title')
|
||||
op.drop_column('page_contents', 'luxury_testimonials_section_subtitle')
|
||||
op.drop_column('page_contents', 'luxury_testimonials_section_title')
|
||||
op.drop_column('page_contents', 'luxury_gallery_section_subtitle')
|
||||
op.drop_column('page_contents', 'luxury_gallery_section_title')
|
||||
op.drop_constraint(None, 'favorites', type_='foreignkey')
|
||||
op.drop_constraint(None, 'favorites', type_='foreignkey')
|
||||
op.create_foreign_key('favorites_ibfk_2', 'favorites', 'rooms', ['room_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.create_foreign_key('favorites_ibfk_1', 'favorites', 'users', ['user_id'], ['id'], onupdate='CASCADE', ondelete='CASCADE')
|
||||
op.drop_index(op.f('ix_favorites_id'), table_name='favorites')
|
||||
op.create_index('unique_user_room_favorite', 'favorites', ['user_id', 'room_id'], unique=False)
|
||||
op.create_index('favorites_user_id', 'favorites', ['user_id'], unique=False)
|
||||
op.create_index('favorites_room_id', 'favorites', ['room_id'], unique=False)
|
||||
op.drop_constraint(None, 'checkin_checkout', type_='foreignkey')
|
||||
op.drop_constraint(None, 'checkin_checkout', type_='foreignkey')
|
||||
op.drop_constraint(None, 'checkin_checkout', type_='foreignkey')
|
||||
op.create_foreign_key('checkin_checkout_ibfk_3', 'checkin_checkout', 'users', ['checkout_by'], ['id'], onupdate='CASCADE', ondelete='SET NULL')
|
||||
op.create_foreign_key('checkin_checkout_ibfk_2', 'checkin_checkout', 'users', ['checkin_by'], ['id'], onupdate='CASCADE', ondelete='SET NULL')
|
||||
op.create_foreign_key('checkin_checkout_ibfk_1', 'checkin_checkout', 'bookings', ['booking_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_constraint(None, 'checkin_checkout', type_='unique')
|
||||
op.drop_index(op.f('ix_checkin_checkout_id'), table_name='checkin_checkout')
|
||||
op.create_index('checkin_checkout_booking_id', 'checkin_checkout', ['booking_id'], unique=False)
|
||||
op.drop_constraint(None, 'bookings', type_='foreignkey')
|
||||
op.drop_constraint(None, 'bookings', type_='foreignkey')
|
||||
op.create_foreign_key('bookings_ibfk_2', 'bookings', 'rooms', ['room_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.create_foreign_key('bookings_ibfk_1', 'bookings', 'users', ['user_id'], ['id'], onupdate='CASCADE', ondelete='RESTRICT')
|
||||
op.drop_index(op.f('ix_bookings_id'), table_name='bookings')
|
||||
op.drop_index(op.f('ix_bookings_booking_number'), table_name='bookings')
|
||||
op.create_index('ix_bookings_promotion_code', 'bookings', ['promotion_code'], unique=False)
|
||||
op.create_index('bookings_user_id', 'bookings', ['user_id'], unique=False)
|
||||
op.create_index('bookings_status', 'bookings', ['status'], unique=False)
|
||||
op.create_index('bookings_room_id', 'bookings', ['room_id'], unique=False)
|
||||
# ### end Alembic commands ###
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
"""add_luxury_section_fields_to_page_content
|
||||
|
||||
Revision ID: 17efc6439cc3
|
||||
Revises: bfa74be4b256
|
||||
Create Date: 2025-11-20 13:37:20.015422
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = '17efc6439cc3'
|
||||
down_revision = 'bfa74be4b256'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add luxury section fields to page_contents table
|
||||
# Use TEXT instead of VARCHAR to avoid MySQL row size limits
|
||||
op.add_column('page_contents', sa.Column('luxury_section_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_section_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_section_image', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('luxury_features', sa.Text(), nullable=True)) # JSON array
|
||||
op.add_column('page_contents', sa.Column('luxury_gallery', sa.Text(), nullable=True)) # JSON array of image URLs
|
||||
op.add_column('page_contents', sa.Column('luxury_testimonials', sa.Text(), nullable=True)) # JSON array of testimonials
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Remove luxury section fields
|
||||
op.drop_column('page_contents', 'luxury_testimonials')
|
||||
op.drop_column('page_contents', 'luxury_gallery')
|
||||
op.drop_column('page_contents', 'luxury_features')
|
||||
op.drop_column('page_contents', 'luxury_section_image')
|
||||
op.drop_column('page_contents', 'luxury_section_subtitle')
|
||||
op.drop_column('page_contents', 'luxury_section_title')
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
36
Backend/alembic/versions/add_about_page_fields.py
Normal file
36
Backend/alembic/versions/add_about_page_fields.py
Normal file
@@ -0,0 +1,36 @@
|
||||
"""add_about_page_fields
|
||||
|
||||
Revision ID: f2a3b4c5d6e7
|
||||
Revises: a1b2c3d4e5f6
|
||||
Create Date: 2025-11-20 17:00:00.000000
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'f2a3b4c5d6e7'
|
||||
down_revision = 'a1b2c3d4e5f6'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add about page specific fields (all as TEXT to avoid row size issues)
|
||||
op.add_column('page_contents', sa.Column('about_hero_image', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('mission', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('vision', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('team', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('timeline', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('achievements', sa.Text(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Remove about page specific fields
|
||||
op.drop_column('page_contents', 'achievements')
|
||||
op.drop_column('page_contents', 'timeline')
|
||||
op.drop_column('page_contents', 'team')
|
||||
op.drop_column('page_contents', 'vision')
|
||||
op.drop_column('page_contents', 'mission')
|
||||
op.drop_column('page_contents', 'about_hero_image')
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
"""add_copyright_text_to_page_content
|
||||
|
||||
Revision ID: a1b2c3d4e5f6
|
||||
Revises: ff515d77abbe
|
||||
Create Date: 2025-11-20 16:00:00.000000
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'a1b2c3d4e5f6'
|
||||
down_revision = '1444eb61188e'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add copyright_text column to page_contents table
|
||||
op.add_column('page_contents', sa.Column('copyright_text', sa.Text(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Remove copyright_text column from page_contents table
|
||||
op.drop_column('page_contents', 'copyright_text')
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
"""add_luxury_content_fields_to_page_content
|
||||
|
||||
Revision ID: bfa74be4b256
|
||||
Revises: bd309b0742c1
|
||||
Create Date: 2025-11-20 13:27:52.106013
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'bfa74be4b256'
|
||||
down_revision = 'bd309b0742c1'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add luxury content fields to page_contents table
|
||||
op.add_column('page_contents', sa.Column('amenities_section_title', sa.String(500), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('amenities_section_subtitle', sa.String(1000), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('amenities', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('testimonials_section_title', sa.String(500), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('testimonials_section_subtitle', sa.String(1000), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('testimonials', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('gallery_section_title', sa.String(500), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('gallery_section_subtitle', sa.String(1000), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('gallery_images', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('about_preview_title', sa.String(500), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('about_preview_subtitle', sa.String(1000), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('about_preview_content', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('about_preview_image', sa.String(1000), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('stats', sa.Text(), nullable=True))
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Remove luxury content fields
|
||||
op.drop_column('page_contents', 'stats')
|
||||
op.drop_column('page_contents', 'about_preview_image')
|
||||
op.drop_column('page_contents', 'about_preview_content')
|
||||
op.drop_column('page_contents', 'about_preview_subtitle')
|
||||
op.drop_column('page_contents', 'about_preview_title')
|
||||
op.drop_column('page_contents', 'gallery_images')
|
||||
op.drop_column('page_contents', 'gallery_section_subtitle')
|
||||
op.drop_column('page_contents', 'gallery_section_title')
|
||||
op.drop_column('page_contents', 'testimonials')
|
||||
op.drop_column('page_contents', 'testimonials_section_subtitle')
|
||||
op.drop_column('page_contents', 'testimonials_section_title')
|
||||
op.drop_column('page_contents', 'amenities')
|
||||
op.drop_column('page_contents', 'amenities_section_subtitle')
|
||||
op.drop_column('page_contents', 'amenities_section_title')
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
"""add_more_luxury_sections_to_page_content
|
||||
|
||||
Revision ID: ff515d77abbe
|
||||
Revises: 17efc6439cc3
|
||||
Create Date: 2025-11-20 15:17:50.977961
|
||||
|
||||
"""
|
||||
from alembic import op
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'ff515d77abbe'
|
||||
down_revision = '17efc6439cc3'
|
||||
branch_labels = None
|
||||
depends_on = None
|
||||
|
||||
|
||||
def upgrade() -> None:
|
||||
# Add more luxury sections to page_contents table
|
||||
op.add_column('page_contents', sa.Column('luxury_services', sa.Text(), nullable=True)) # JSON array of services
|
||||
op.add_column('page_contents', sa.Column('luxury_experiences', sa.Text(), nullable=True)) # JSON array of experiences
|
||||
op.add_column('page_contents', sa.Column('awards', sa.Text(), nullable=True)) # JSON array of awards
|
||||
op.add_column('page_contents', sa.Column('cta_title', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('cta_subtitle', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('cta_button_text', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('cta_button_link', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('cta_image', sa.Text(), nullable=True))
|
||||
op.add_column('page_contents', sa.Column('partners', sa.Text(), nullable=True)) # JSON array of partners
|
||||
|
||||
|
||||
def downgrade() -> None:
|
||||
# Remove luxury sections fields
|
||||
op.drop_column('page_contents', 'partners')
|
||||
op.drop_column('page_contents', 'cta_image')
|
||||
op.drop_column('page_contents', 'cta_button_link')
|
||||
op.drop_column('page_contents', 'cta_button_text')
|
||||
op.drop_column('page_contents', 'cta_subtitle')
|
||||
op.drop_column('page_contents', 'cta_title')
|
||||
op.drop_column('page_contents', 'awards')
|
||||
op.drop_column('page_contents', 'luxury_experiences')
|
||||
op.drop_column('page_contents', 'luxury_services')
|
||||
|
||||
Reference in New Issue
Block a user