2011-11-07 50 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

相关问题