-
Notifications
You must be signed in to change notification settings - Fork 366
Added alembic script to resize url and slug columns to 191 #1192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
05b2a53 to
97bb774
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have tested in sqlite3, migration script is working as expected.
Signed-off-by: Veeresh K <veeruveeresh1522@gmail.com>
Signed-off-by: Veeresh K <veeruveeresh1522@gmail.com>
Signed-off-by: Veeresh K <veeruveeresh1522@gmail.com>
Signed-off-by: Veeresh K <veeruveeresh1522@gmail.com>
- Update db.py SQLAlchemy model to match migration (String(191)) - Add dialect-specific SQL handling in migration (SQLite, PostgreSQL, MySQL) - Use CHAR_LENGTH for character-based truncation (not byte-based LENGTH in MySQL) - Ensure truncation works correctly across all supported database backends
- SQLite doesn't support ALTER COLUMN TYPE directly - Use batch_alter_table for SQLite (creates temp table, copies data, renames) - Keep direct ALTER COLUMN for PostgreSQL and MySQL - Applies to both upgrade and downgrade operations - Fixes: sqlalchemy.exc.OperationalError with SQLite
Signed-off-by: Veeresh K <veeruveeresh1522@gmail.com>
af29ecb to
1a308a0
Compare
Signed-off-by: rakdutta <rakhibiswas@yahoo.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
After rebase and retesting, I noticed the slug size changes during Alembic upgrade, but it’s repopulated from the name field after make server. Since slug is a computed field from name, its size shouldn’t be changed.
🧾 PR Summary: Resize
slugandurlColumns to 191 CharactersBackground
In the existing schema, the following columns had larger lengths:
slug→VARCHAR(255)url→VARCHAR(767)These lengths exceeded typical index length limits on some databases (especially MySQL with UTF8MB4 encoding), potentially causing compatibility or index creation issues.
Change Summary
This migration adjusts both columns to a consistent and safer maximum length of 191 characters.
Migration Details
Upgrade (
2f67b12600b4 → 878e287d2366):slug:VARCHAR(255)→VARCHAR(191)url:VARCHAR(767)→VARCHAR(191)Downgrade (
878e287d2366 → 2f67b12600b4):slug:VARCHAR(191)→VARCHAR(255)url:VARCHAR(191)→VARCHAR(767)Rationale
Verification