如何使用SQLite 3访问Django中的更多数据库

时间:2009-10-28 04:53:04

标签: django django-models

在Django中我使用两个应用程序:

  1. python manage.py startapp books
  2. python manage.py startapp contacts
  3. 我仍然只使用书籍应用程序模型。所以我使用的是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作为数据库。

3 个答案:

答案 0 :(得分:2)

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

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

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

就像一个例子:django.contrib.auth已经在books.db数据库文件中创建了表。您的INSTALLED_APPS中列出的任何其他应用程序也是如此。

希望有所帮助。

答案 1 :(得分:1)

Django目前不支持多个数据库。但是,您可以在新应用程序中同步dbdb新模型,它们将全部放在同一个数据库中,一切都会正常工作。

答案 2 :(得分:0)

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

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

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