2011-11-07 81 views
0

我的web2py框架下有3個應用程序。我可以使用單一的MySQL數據庫(通過表格的前綴),因此用戶只需要一次註冊即可訪問這3個應用程序嗎?我嘗試失敗。還是其他解決方案?非常感謝。用於許多web2py應用程序的單個MySQL數據庫

+2

您的「嘗試」失敗?您可能需要詳細說明。 – aitchnyu

+0

你好。只要我用相同的數據庫設置我的應用程序的所有3個DAL,它就會失敗。它工作正常,如果只有一個應用程序使用數據庫。謝謝。 –

+0

如果我回溯,它說InternalError:(1050,你表「auth_user'已經存在」)。確定它已經存在,因爲由第一個應用程序創建。 –

回答

1

如果多個應用程序共享同一個數據庫表,除了其中一個應用程序外,其他應用程序都必須使用migrate=False定義該表以防止遷移嘗試。注意,Auth.define_tables()也需要migrate參數,所以具體關閉遷移爲Auth表,你可以這樣做:

auth.define_tables(migrate=False) 

您也可以關閉遷移在應用程序中有一個完整的數據庫連接:

db = DAL(..., migrate_enabled=False) 

有關應用程序間合作的更多信息,請參見here

+0

問題已解決。非常感謝你,安東尼! –

+0

但我仍然失去了一個註冊如何適用於所有應用程序? –

+0

您也可以考慮設置[中央身份驗證服務](http://web2py.com/book/default/chapter/08#Central-Authentication-Service),並讓其中一個應用程序成爲提供程序,其他應用程序消費者。 – Anthony

相關問題