~/dev/TG-Commerce$ tg-admin sql sql
Using database URI sqlite:///home/ubuntu/dev/TG-Commerce/tgcommerce.db
CREATE TABLE category (
id INTEGER PRIMARY KEY,
name VARCHAR(64),
parent_id INT
);
CREATE TABLE product (
id INTEGER PRIMARY KEY,
name VARCHAR(64),
sku VARCHAR(64),
price DECIMAL(10, 2) NOT NULL,
category_id INT
);
下面是 Order 和 OrderItem 类,它们分别用来保存购物车和所购物品清单。由于 order 是一个 SQL 关键字,因此 Order 类的表名被使用 sqlmeta 子类的表属性重新定义为 orders:
清单 8. Order 和 OrderItem 类(model.py,续)
class Order(SQLObject):
items = MultipleJoin('OrderItem', joinColumn='order_id')
class sqlmeta:
table = 'orders'
class OrderItem(SQLObject):
quantity = IntCol(notNone=True)
price = CurrencyCol(notNone=True)
total = CurrencyCol(notNone=True)
order = ForeignKey('Order')
product = ForeignKey('Product')
使用 tg-admin sql create 命令创建数据库表:
清单 9. 使用 “tg-admin sql create” 命令创建数据库表
~/dev$ tg-admin sql create
Using database URI sqlite:///home/ubuntu/dev/TG-Commerce/tgcommerce.db
我们可以使用 tg-admin sql help 找到更多命令,包括删除表的命令。在使用这个命令时要特别小心,因为这会删除所有的表以及表中的数据。由于这个原因,在生产环境中应当锁定 tg-admin 命令。