-
Notifications
You must be signed in to change notification settings - Fork 120
Closed
Labels
Milestone
Description
High Priority Missing Features
- Generated/Computed Columns (MySQL)
- PostgreSQL has IDENTITY columns, but MySQL's GENERATED/VIRTUAL columns are not supported
- These are increasingly common for denormalization and JSON extraction
- Example: price DECIMAL(10,2), tax DECIMAL(10,2), total DECIMAL(10,2) AS (price + tax) STORED
- Views
- No support for CREATE/DROP VIEW
- Common use case for migrations to create database views
- Would be useful for both materialized (PostgreSQL) and regular views
=> Add support for database views and triggers #957
- Sequences (PostgreSQL)
- While auto-increment is supported, explicit sequence management is not
- Useful for PostgreSQL when you need custom sequences or shared sequences across tables
- Table Partitioning
- No support for PARTITION BY (RANGE, LIST, HASH)
- Increasingly important for large datasets
- MySQL 8.0+ and PostgreSQL both support this
- Spatial Indexes
- Geometry/Point/Linestring types are supported, but SPATIAL indexes are not
- Would complete the geospatial feature set
Medium Priority Missing Features
- Database-level Operations
- User/Role management (CREATE USER, GRANT/REVOKE)
- While often handled outside migrations, could be useful for test environments
- Triggers
- SQLite adapter preserves them during recreation, but no way to create/modify them
- Common for audit logging and complex business rules
=> Add support for database views and triggers #957
- Check Constraint Naming
- CHECK constraints are supported but may lack explicit naming control
- Important for dropping/modifying specific constraints later
- Column Compression (MySQL 8.0.30+)
- COLUMN_FORMAT COMPRESSED for InnoDB
- Useful for large TEXT/BLOB columns
- Index Visibility (MySQL 8.0+)
- ALTER INDEX ... INVISIBLE/VISIBLE
- Useful for testing index performance impact without dropping
Low Priority (But Potentially Useful)
DEFAULT CURRENT_TIMESTAMP for more column types
- Currently supported for timestamps, could expand to DATE/TIME
What do people think? Which ones are relevant and we should look into in the future, which ones should be forget about?