2020-12-24 14:47:27 +01:00
""" Peewee migrations -- 001_create_events_table.py.
Some examples ( model - class or model name ) : :
> Model = migrator . orm [ ' model_name ' ] # Return model in current state by name
> migrator . sql ( sql ) # Run custom SQL
> migrator . python ( func , * args , * * kwargs ) # Run python code
> migrator . create_model ( Model ) # Create a model (could be used as decorator)
> migrator . remove_model ( model , cascade = True ) # Remove a model
> migrator . add_fields ( model , * * fields ) # Add fields to a model
> migrator . change_fields ( model , * * fields ) # Change fields
> migrator . remove_fields ( model , * field_names , cascade = True )
> migrator . rename_field ( model , old_field_name , new_field_name )
> migrator . rename_table ( model , new_table_name )
> migrator . add_index ( model , * col_names , unique = False )
> migrator . drop_index ( model , * col_names )
> migrator . add_not_null ( model , * field_names )
> migrator . drop_not_null ( model , * field_names )
> migrator . add_default ( model , field_name , default )
"""
import peewee as pw
SQL = pw . SQL
2021-02-17 14:23:32 +01:00
2020-12-24 14:47:27 +01:00
def migrate ( migrator , database , fake = False , * * kwargs ) :
2021-02-17 14:23:32 +01:00
migrator . sql (
' CREATE TABLE IF NOT EXISTS " event " ( " id " VARCHAR(30) NOT NULL PRIMARY KEY, " label " VARCHAR(20) NOT NULL, " camera " VARCHAR(20) NOT NULL, " start_time " DATETIME NOT NULL, " end_time " DATETIME NOT NULL, " top_score " REAL NOT NULL, " false_positive " INTEGER NOT NULL, " zones " JSON NOT NULL, " thumbnail " TEXT NOT NULL) '
)
2020-12-24 14:47:27 +01:00
migrator . sql ( ' CREATE INDEX IF NOT EXISTS " event_label " ON " event " ( " label " ) ' )
migrator . sql ( ' CREATE INDEX IF NOT EXISTS " event_camera " ON " event " ( " camera " ) ' )
2021-02-17 14:23:32 +01:00
2020-12-24 14:47:27 +01:00
def rollback ( migrator , database , fake = False , * * kwargs ) :
pass