既存のMSSQLデータベースには、すべて自動番号IDの主キーを持つテーブルが数十ありますが、「id」という名前のテーブルはありません。代わりに、PropertyID、ClientIDなどの名前が付けられています。公式ドキュメントでは、これらの各フィールドの名前を「id」に変更することを提案しているようです。
レガシーデータベース
web2pyは、いくつかの条件下でレガシーデータベースに接続できます。
- 各テーブルには、「id」と呼ばれる一意の自動インクリメント整数フィールドが必要です。
- レコードは、「id」フィールドを使用して排他的に参照する必要があります。
これらの条件が満たされていない場合は、これらの要件に準拠するように手動でALTER TABLEを変更する必要があります。そうでない場合、web2pyからアクセスできません。
これは制限として考えるべきではなく、むしろ、web2pyがあなたに良い習慣に従うことを奨励する多くの方法の1つとして考えられるべきです。
ただし、そのためには、このデータベースを使用する他のアプリケーションで何百もの既存のクエリを壊す必要があります。確かに、「id」の代わりに使用する既存の自動番号フィールドの名前を指定する方法が必要です。
これは、Djangoが正しく、web2pyがひどく間違っている領域のようです。それとも私は何かが足りないのですか? 何かが足りなかったようです...