2012-03-28 61 views
1

我们的一位客户需要将一些地理位置数据添加到他们的 网站。由于他们已经有了没有GIS扩展的数据库设置,我决定创建一个新的数据库(带有GIS扩展),我打算用这个数据库来存储地理定位数据。如何成功将第二个数据库与Django South集成?

在某些时候,我已经设置好了我的开发 机器(也就是说,我已经为这些新机型进行了迁移)。但是现在已经编写了代码,我直接从服务器导入了一个数据库转储 ,这样我的开发机器就完全镜像了生产机器,现在我似乎无法正确应用迁移到南方到 。南似乎有几个功能 允许多个数据库,但他们都没有工作到目前为止。

我已经试过:

  1. 只是增加了模型和迁移。这给了我以下 错误:

    AttributeError: 'DatabaseOperations' object has no attribute 
    'geo_db_type' 
    

    好了,南试图创建不具备GIS扩展原始数据库 型号。

  2. 添加模型,但指定'地理'数据库以迁移'地理'应用程序 。这使我有以下错误:

    django.db.utils.DatabaseError: relation "south_migrationhistory" 
    does not exist 
    

    我猜南预计其MigrationHistory表上的“地理” 数据库中是否存在呢?

  3. 允许南方的模型存在于我的“地理”数据库中。

    $ python manage.py syncdb --database=geo 
    $ python manage.py migrate 
    

    这给了我下面的错误:

    django.db.utils.DatabaseError: relation "<model>" already exists 
    

    我猜这是因为我已经存储在 其他数据库MigrationHistories?

  4. 南方显然是有一个名为“星展” 人口稀少记录功能(请参阅: http://south.aeracode.org/docs/databaseapi.html#accessing-the-api) 所以,我想前面三种方法再次与“DBS [‘缘’]”取代的 “DB”的所有实例。

    a。迁移运行平稳,但实际上并没有在我的'geo'数据库中创建任何表 。

    b。与不使用'dbs'功能时相同的错误。

    c。与不使用'dbs'功能时相同的错误。

这整个过程一直非常令人沮丧。使用South时,有没有人得到 多个数据库支持运行?

+0

您是否尝试过我发布的解决方案? – 2012-04-05 14:14:44

回答

2

每当我已经修改了我南方使用的表款,并且这些命令来修改结构,他们总是努力:

python manage.py convert_to_south "your_app" 
python manage.py migrate "your_app" 

我建议运行执行syncdb后运行这些命令,所以你的表创建。