package schema // Column represents a single column in a table. type Column struct { TableName string `db:"table_name"` Name string `db:"column_name"` Type string `db:"column_type"` IsNotNull bool `db:"notnull"` HasDefaultValue bool `db:"has_default_value"` DefaultValue string `db:"dflt_value"` IsPrimaryKey bool `db:"is_primary_key"` IsForeignKey bool `db:"is_foreign_key"` ForeignKeyTargetTable string `db:"fk_target_table"` ForeignKeyTargetColumn string `db:"fk_target_column"` } // IsNullableForeignKey is a helper function. func (c Column) IsNullableForeignKey() bool { return !c.IsNotNull && !c.IsPrimaryKey && c.IsForeignKey } // Table is a single SQLite table. type Table struct { TableName string `db:"name"` IsStrict bool `db:"is_strict"` IsWithoutRowid bool `db:"is_without_rowid"` Columns []Column TypeIDName string VarName string TypeName string } // Schema is a container for a bunch of Tables, indexed by table name. type Schema map[string]Table