平臺:Python 2.5,Django開發根,PostgreSQL 8.4,Windows Vista Ultimate SP2。 過程:Django文檔,版本1.0,link text,第34.2節,提供初始SQL數據。Django syncdb上使用PostgreSQL的SQL初始數據產生「列...不存在」
CODE:
models.py:
class aisc_customary(models.Model):
MTYPE = models.CharField(max_length=4, editable=False,
help_text="Shape type, e.g. W, C, L, etc.")
EDI_STD_NOMENCLATURE = models.CharField(max_length=26, editable=False,
help_text="EDI shape designation")
AISC_MANUAL_LABEL = models.CharField(max_length=26, editable=False, primary_key=True,
help_text="AISC Manual label")
T_F = models.CharField(max_length=1, editable=False,
help_text="Special note flag, T or F")
W = models.FloatField(editable=False,
help_text="Nominal weight, lbs/ft")
... (45 more FloatFields)
application1/sql/aisc_customary.sql:
INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X335', 'W44X335', 'F', 335, 98.5, 44.0, 0, 0, 15.9, 0, 0, 1.03, 1.77, 0, 0, 0.00, 2.56, 2.63, 1.31, 0.00, 0.00, 0.00, 0.00, 0.00, 4.50, 0.00, 38.0, 0.00, 0.00, 31100, 1620, 1410, 17.8, 1200, 236, 150, 3.49, 0.00, 74.7, 535000, 0.00, 168, 1180, 278, 805, 0.00, 0.00, 0.00, 0.00);
INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X290', 'W44X290', 'F', 290, 85.4, 43.6, 0, 0, 15.8, 0, 0, 0.865, 1.58, 0, 0, 0.00, 2.36, 2.44, 1.25, 0.00, 0.00, 0.00, 0.00, 0.00, 5.02, 0.00, 45.0, 0.00, 0.00, 27000, 1410, 1240, 17.8, 1040, 205, 132, 3.49, 0.00, 50.9, 461000, 0.00, 166, 1040, 248, 701, 0.00, 0.00, 0.00, 0.00);
INSERT INTO application1_aisc_customary (MTYPE, EDI_STD_NOMENCLATURE, AISC_MANUAL_LABEL, T_F, W, A, D, HT, OD, BF, B, ID, TW, TF, T, TNOM, TDES, KDES, KDET, K1, X, Y , E0, XP, YP, BF_2TF, B_T, H_TW, H_T, D_T, IX, ZX, SX, RX, IY, ZY, SY, RY, RZ, J, CW, C, WNO, SW, QF, QW, RO, H, TAN_ALPHA, QS) VALUES ('W', 'W44X262', 'W44X262', 'F', 262, 76.9, 43.3, 0, 0, 15.8, 0, 0, 0.785, 1.42, 0, 0, 0.00, 2.20, 2.25, 1.19, 0.00, 0.00, 0.00, 0.00, 0.00, 5.57, 0.00, 49.6, 0.00, 0.00, 24100, 1270, 1110, 17.7, 923, 182, 117, 3.47, 0.00, 37.3, 405000, 0.00, 165, 928, 223, 630, 0.00, 0.00, 0.00, 0.00);
... (1965 more lines like this)
Django開發服務器正常工作和PostgreSQL服務器運行,當麻煩的初始數據文件從它的標準路徑移除回答有關其他型號的數據查詢。
創建表application1_aisc_customary 失敗安裝自定義SQL application1.aisc_customary模型 安裝自定義的SQL:
壞表的以前版本中使用的pgAdmin III,控制檯命令「蟒蛇manage.py執行syncdb」產生這個錯誤回落對於application1.aisc_customary模式:關係欄 「MTYPE」 「application1_aisc_customary」 不存在 LINE 1:INSERT INTO application1_aisc_customary(MTYPE,EDI_STD_NOME ...
一克拉點於M MTYPE的錯誤儘管如此,列。 (大寫)MTYPE 確實存在,如使用pgAdmin III可以看到的那樣。請注意,Django管理員報告該表,但它沒有記錄。
我已經嘗試了unicode和ANSI編碼爲SQL,採取可編輯=假關閉模型屬性和小寫名稱的一切,但模型屬性。也許我錯過了一些準備性的SQL語句。我正在醒目。我會非常感激一個啓發性的迴應。在此先感謝您的幫助。
09/21/09:有關記錄,zalew的答案是正確的。小寫字段名稱是必需的。我還必須將一個字段名稱,id(內徑)更改爲i_d,以便糾正與主鍵之間的明顯衝突。我將od改爲o_d以匹配。問題解決了。
它不能解決你的問題,但爲什麼你加載SQL而不是初始數據夾具? – zalew 2009-09-20 03:40:23
爲什麼不呢?也就是說,如果可以開展工作!將原始.csv數據庫重新轉換爲SQL很容易,所有名稱都在左側,所有值都在右側。我在Notepad ++中使用了宏。另一方面,JSON或YAML將需要一個簡短的Python腳本。不過,如果我無法弄清楚SQL的問題是什麼,那我會這麼做。我沒有意識到任何一種方法都有很大的優勢,因爲我建議在INSERT INTO命令之外不使用自定義SQL。可能SQL會加載更快,但這是一次性的事情,而不是考慮因素。 – 2009-09-20 06:06:29
當然,我只問好奇:) – zalew 2009-09-21 11:36:06