2012-03-28 63 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後運行這些命令,所以你的表創建。