2009-10-28 82 views
-1

在Django中我使用的两个应用程序:如何访问多个数据库在Django使用SQLite 3

  1. 蟒蛇manage.py的startApp书
  2. 蟒蛇manage.py的startApp接触

不过我我只使用书籍应用程序模型。所以我用DATABASE_NAME,如:

DATABASE_NAME = 'C:/WorkBase/Python/first/books/book.db' 

现在我想用第二个联系人应用程序模型。如何将联系人应用程序模型添加到DATABASE_NAME?我的INSTALLED_APPS看起来像这样。

INSTALLED_APPS = (
    'django.contrib.admin', 
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'first.books', 
    'first.contacts', 
) 

注:我正在使用SQLite 3作为数据库。

+0

请参阅http://stackoverflow.com/questions/168218/is-it-possible-to-have-separate-sqlite-databases-within-the-same-django-project – Martin 2009-10-28 05:01:28

+0

我错误地问了这个问题。 – Beginner 2009-10-28 15:51:38

回答

1

Django目前不支持多个数据库。但是,你可以在你的新应用程序中syncdb你的新模型,并且它们将全部进入同一个数据库,并且一切都会工作。

+0

喜.Ur corret.But它可以支持muliple models.i想知道如何访问另一个模型(指接触应用模式)。对于我需要在DATABASE_NAME改变know..How其 – Beginner 2009-10-28 05:05:31

+1

very.Thanks懒蟒蛇,, ,,,,,,,,,,,,,, – Beginner 2009-10-28 15:50:35

+0

我认为干线:) – 2010-01-30 20:24:10

0

在SQLITE中,您可以“附加数据库”到另一个SQLite数据库。

我不确定确切的语法,因为我一直通过sqliteman“系统”菜单完成此操作。

附加的数据库表使用本地表中不同的“模式”/高级限定符,但这对于Django来说不应该是个问题。

2

我认为Aravind所要求的是“如何在books.db sqlite3数据库中为我的联系人应用程序创建模型?”。大多数人似乎认为他需要多个数据库支持 - 但似乎并非如此。

1)数据库文件的名称是不相关的。仅仅因为你称它为书籍并不意味着它不会存储INSTALLED_APPS中所有应用程序的模型。

2)要为sqlite3数据库中的Contacts应用程序创建模型,您必须执行manage.py syncdb - 将为您创建任何新表格,模型的修改可能需要您删除这些书籍。执行manage.py syncdb之前的db文件。

仅作为示例:django.contrib.auth已在books.db数据库文件中创建表。您的INSTALLED_APPS中列出的其他应用程序也是如此。

希望有所帮助。