12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package migrate
- import (
- "golang-fave/engine/sqlw"
- )
- func Migrate_000000015(db *sqlw.DB, host string) error {
- // Table: shop_orders
- if _, err := db.Exec(
- `CREATE TABLE shop_orders (
- id int(11) NOT NULL AUTO_INCREMENT COMMENT 'AI',
- create_datetime datetime NOT NULL COMMENT 'Create date/time',
- update_datetime datetime NOT NULL COMMENT 'Update date/time',
- currency_id int(11) NOT NULL COMMENT 'Currency ID',
- currency_name varchar(255) NOT NULL COMMENT 'Currency name',
- currency_coefficient float(8,4) NOT NULL DEFAULT '1.0000' COMMENT 'Currency coefficient',
- currency_code varchar(10) NOT NULL COMMENT 'Currency code',
- currency_symbol varchar(5) NOT NULL COMMENT 'Currency symbol',
- client_last_name varchar(64) NOT NULL COMMENT 'Client last name',
- client_first_name varchar(64) NOT NULL COMMENT 'Client first name',
- client_middle_name varchar(64) NOT NULL DEFAULT '' COMMENT 'Client middle name',
- client_phone varchar(20) NOT NULL DEFAULT '' COMMENT 'Client phone',
- client_email varchar(64) NOT NULL COMMENT 'Client email',
- client_delivery_comment text NOT NULL COMMENT 'Client delivery comment',
- client_order_comment text NOT NULL COMMENT 'Client order comment',
- status int(1) NOT NULL COMMENT 'new/confirmed/inprogress/canceled/completed',
- PRIMARY KEY (id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`,
- ); err != nil {
- return err
- }
- // Table: shop_order_products
- if _, err := db.Exec(
- `CREATE TABLE shop_order_products (
- id int(11) NOT NULL AUTO_INCREMENT COMMENT 'AI',
- order_id int(11) NOT NULL COMMENT 'Order ID',
- product_id int(11) NOT NULL COMMENT 'Product ID',
- price float(8,2) NOT NULL COMMENT 'Product price',
- quantity int(11) NOT NULL COMMENT 'Quantity',
- PRIMARY KEY (id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8;`,
- ); err != nil {
- return err
- }
- // Indexes
- if _, err := db.Exec(`ALTER TABLE shop_orders ADD KEY FK_shop_orders_currency_id (currency_id);`); err != nil {
- return err
- }
- if _, err := db.Exec(`ALTER TABLE shop_order_products ADD UNIQUE KEY order_product (order_id,product_id) USING BTREE;`); err != nil {
- return err
- }
- if _, err := db.Exec(`ALTER TABLE shop_order_products ADD KEY FK_shop_order_products_order_id (order_id);`); err != nil {
- return err
- }
- if _, err := db.Exec(`ALTER TABLE shop_order_products ADD KEY FK_shop_order_products_product_id (product_id);`); err != nil {
- return err
- }
- // References
- if _, err := db.Exec(`
- ALTER TABLE shop_orders ADD CONSTRAINT FK_shop_orders_currency_id
- FOREIGN KEY (currency_id) REFERENCES shop_currencies (id) ON DELETE RESTRICT;
- `); err != nil {
- return err
- }
- if _, err := db.Exec(`
- ALTER TABLE shop_order_products ADD CONSTRAINT FK_shop_order_products_order_id
- FOREIGN KEY (order_id) REFERENCES shop_orders (id) ON DELETE RESTRICT;
- `); err != nil {
- return err
- }
- if _, err := db.Exec(`
- ALTER TABLE shop_order_products ADD CONSTRAINT FK_shop_order_products_product_id
- FOREIGN KEY (product_id) REFERENCES shop_products (id) ON DELETE RESTRICT;
- `); err != nil {
- return err
- }
- return nil
- }
|