0
我有一个django项目,我试图在不使用任何迁移工具的情况下更新数据库表。我给一个模型添加了一个'slug'字段,它只是简单地引用了它的名字,我打算通过复制另一个已经有一个slug的表中的内容来实现。在与数据库绑定的数据库中创建一个slug字段
所以,我在数据库中的现有表“健身房”如下
+----------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| gym_name | varchar(50) | NO | UNI | NULL | |
| gym_slug | varchar(50) | NO | MUL | NULL | |
| created | datetime | NO | | NULL | |
| modified | datetime | NO | | NULL | |
+----------+--------------+------+-----+---------+----------------+
,我必须在数据库中的另一个表“墙”如下:
+-----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| wall_name | varchar(50) | NO | UNI | NULL | |
| gym_id | int(11) | NO | MUL | NULL | |
| created | datetime | NO | | NULL | |
| modified | datetime | NO | | NULL | |
+-----------+-------------+------+-----+---------+----------------+
这将得到我的一部分的方式有:
ALTER TABLE wall ADD COLUMN wall_slug varchar(50);
但我不知道如何找出哪里的外键第一个表是参考的,因此我应该指出新的一个。
最终目标:将wall_slug字段绑定到唯一的wall_name字段。希望这是有道理的。
我不明白你的意思是什么: “但我不确定如何确定第一个表中的外键引用的位置,以及我应该在哪里指向新的表。你正在添加一个文本字段,而不是外键,对吗?另外,你的意思是“ALTER TABLE墙添加列wall_slug varchar(50)”? – Rob 2011-02-11 03:13:06
关于后面的问题,是的 - 我只是编辑它以反映适当的查询。至于你的第一个问题,我可能会误解桌子给我看的东西,但它看起来像gym.gym_name和gym.gym_slug不仅仅在模型层面上相关,而且在数据库层面也是如此。我假设我必须按照某种方式将wall.wall_name关联到wall.wall_slug,但我不知道如何执行此操作。 – IanWhalen 2011-02-11 22:41:58