Database schema operation
3. database meta information
xorm provides methods to getting and setting table schema. For less schema changing production, engine.Sync2() is enough.
3.1 retrieve database meta info
- DBMetas()
engine.DBMetas() returns all tables schema information.
3.2.directly table operation
- CreateTables()
engine.CreateTables(struct) creates table with struct or struct pointer. engine.Charset() and engine.StoreEngine() can change charset or storage engine for mysql database.
- IsTableEmpty()
check table is empty or not.
- IsTableExist()
check table is existed or not.
- DropTables()
engine.DropTables(struct) drops table and indexes with struct or struct pointer. engine.DropTables(string) only drops table except indexes.
3.3.create indexes and uniques
- CreateIndexes create indexes with struct.
- CreateUniques create unique indexes with struct.
3.4.Synchronize database schema
xorm watches tables and indexes and sync schema:
- use table name to create or drop table
- use column name to alter column
- use the indexes definition in struct field tag to create or drop indexes.
1. err := engine.Sync2(new(User))
