我在现有的MSSQL数据库中有几十个表 自动编号ID主键,但没有一个名为“id”。他们是 而是命名为PropertyID,ClientID等官方文档 似乎建议将每个字段重命名为'id':
旧数据库
web2py可以连接到某些旧版数据库 条件:
- 每张桌子都必须有唯一的 自动递增整数字段调用 “id”
- 必须引用记录 专门使用“id”字段。
如果 这些条件是不符合的 必须手动ALTER TABLE到 使他们符合这些要求,或 web2py无法访问它们。
这不应该被认为是一个 限制,而是作为其中之一 web2py鼓励你的很多方式 遵循良好做法。
但是,这需要在其他查询中打破数百个现有查询 使用此数据库的应用程序。当然必须有一些方法 指定要使用的现有自动编号字段的名称而不是 'ID'。
这似乎是Django got it right和web2py got it horribly wrong的区域。或者我错过了什么?似乎我只是遗漏了一些东西......
答案 0 :(得分:4)
该陈述已过时。 web2py支持三种情况:
表有一个不称为“id”的自动增量字段,用
定义表 db.define_table('name',Field('id_name','id'),...other fields...)
表格具有不同的主键
db.define_table('name',...fields..., primarykey=[....])
主键是字段名称列表。
选项3不适用于所有受支持的数据库,但可以轻松扩展。我们只是没有得到太多的请求,所以我们没有足够的测试人员可用于所有可能的选项。请在web2py邮件列表中移动此讨论,我们很乐意为您提供更多帮助。
答案 1 :(得分:1)
显然,这还没有成为当前的web2py书,但看起来事实上已经实现了。来自web2py google网址:web2py and keyed tables。
找到的