私の組織では、Wagtailをベースにした新しいパブリッシングプラットフォームをCMSバックエンドとして開発しています。私たちはMS SQLデータベースの広範な社内専門知識を持っていますが、PostgresやMySQLの隣には誰もいないので、MS SQL(特にSQL Azure)を利用することをお勧めします--Wagtailのドキュメントが示唆しているようです。Wagtail/SQL Azureの互換性に関するトラブルシューティングのアドバイスが必要
私はWagtailのインスタンスを実行しており、SQL Azureをサポートすると主張するDjangoバックエンド(https://pypi.python.org/pypi/django-pyodbc-azure)をインストールしました。 settings.pyでデータベース接続設定を構成しました。
私は正常に移行を実行してスーパーユーザーを作成することができます。そのため、データベースの接続性が良好であると確信しています。
私はその後、createsuperuserスクリプトに提供された資格情報を使用してログインすると直ちにhttp://localhost:8000/adminでセキレイのログインページにアクセスできますが、私は次のエラーを取得:それはセキレイ自身を思わ
('42000', "[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near 'LIMIT'. (102) (SQLExecDirectW)")
を使用していますMS SQLでサポートされていないこのLIMITキーワード - この問題を解決するためのベストプラクティスは何ですか?それとも、私は何にも隠れていますか?
問題のあるSQL:
SELECT wp.* FROM wagtailcore_pagerevision wp
JOIN (SELECT max(created_at) AS max_created_at,
page_id FROM wagtailcore_pagerevision WHERE user_id = %s
GROUP BY page_id ORDER BY max_created_at DESC LIMIT %s) AS max_rev ON max_rev.max_created_at = wp.created_at ORDER BY wp.created_at DESC
SQLの問題のビットがあるように思われる: 'WPをSELECT * wagtailcore_pagerevision FROM WP%max_created_at DESC限界によってpage_idのORDER BY max_created_at、USER_ID =%sのGROUP wagtailcore_pagerevision FROM page_idのAS( SELECT MAX(のcreated_at)に参加s )AS max_rev ON max_rev.max_created_at = wp.created_at ORDER BY wp.created_at DESC'をwagtail/wagtailadmin/views/homeから削除します。py – nm76
SQLServerには、代わりに 'LIMIT'というキーワードがありません。' TOP' – TheGameiswar
Wagtailは現在SQL Serverを正式にサポートしていません。過去のユーザーはWagtailにSQL Serverを使用してもらうことに成功し、MS SQLとの互換性を提供するためのパッチを提供しましたが、互換性を維持するための継続的なQAテストは現在ありません。残念ながら、Wagtail 1.7の間にこのクエリがスリップしたように見え、今まで報告されていません。 – gasman