Migrations
Sistema de migrations para banco de dados.
Uso
from velox.migrations import MigrationManager
migrations = MigrationManager(db='db/app.db')
—
Criar Tabela
migrations.create_table(
'users',
{
'id': 'INTEGER PRIMARY KEY AUTOINCREMENT',
'username': 'TEXT NOT NULL UNIQUE',
'email': 'TEXT NOT NULL UNIQUE',
'password_hash': 'TEXT',
'created_at': 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP',
}
)
—
Drop Table
migrations.drop_table('users')
—
Add Column
migrations.add_column('users', 'avatar_url', 'TEXT')
—
Drop Column
migrations.drop_column('users', 'avatar_url')
—
Rename Column
migrations.rename_column('users', 'old_name', 'new_name')
—
Create Index
migrations.create_index('users', 'username')
migrations.create_index('users', 'email', unique=True)
—
Drop Index
migrations.drop_index('idx_users_username')
—
Execute SQL Customizado
migrations.execute('''
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
content TEXT
)
''')
—
Listar Tabelas
tables = migrations.list_tables()
print(tables) # ['users', 'posts', 'comments']
—
Verificar Tabela
if migrations.table_exists('users'):
print('Tabela users existe')
—
Exportar Schema
schema = migrations.export_schema()
print(schema)
—
Migrations com Model
from velox.database import Model
class User(Model):
table = 'users'
schema = {
'username': str,
'email': str,
'created_at': datetime,
}
# Criar tabela automaticamente
User.create_table()