2012-04-02 3 views
0

간단한 장고 프로젝트에서 몇 가지 모델을 설정했습니다. 내가 실행할 때포스트 그레스에서 장고 쿼리 사라짐

나는 syncdb를 실행하거나 0 오류를 확인하면 좋은 찾고 SQL로드를 얻을.

BEGIN; 
CREATE TABLE "fivefives_player" (
    "id" serial NOT NULL PRIMARY KEY, 
    "username" varchar(200) NOT NULL, 
    "colour" varchar(7) NOT NULL, 
    "remaining_dice" integer NOT NULL 
) 
; 
CREATE TABLE "fivefives_game_player_list" (
    "id" serial NOT NULL PRIMARY KEY, 
    "game_id" integer NOT NULL, 
    "player_id" integer NOT NULL REFERENCES "fivefives_player" ("id") DEFERRABLE INITIALLY DEFERRED, 
    UNIQUE ("game_id", "player_id") 
) 
; 
CREATE TABLE "fivefives_game" (
    "id" serial NOT NULL PRIMARY KEY, 
    "time" timestamp with time zone NOT NULL 
) 
; 
ALTER TABLE "fivefives_game_player_list" ADD CONSTRAINT "game_id_refs_id_c39af54" FOREIGN KEY ("game_id") REFERENCES "fivefives_game" ("id") DEFERRABLE INITIALLY DEFERRED; 
CREATE TABLE "fivefives_round_player_list" (
    "id" serial NOT NULL PRIMARY KEY, 
    "round_id" integer NOT NULL, 
    "player_id" integer NOT NULL REFERENCES "fivefives_player" ("id") DEFERRABLE INITIALLY DEFERRED, 
    UNIQUE ("round_id", "player_id") 
) 
; ... it continues like this... 

하지만 관리자가되면 테이블이 없습니다. postgres에 로그인하면 테이블이 생성되지 않은 것을 볼 수 있습니다.

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': 'perudodb',      # Or path to database file if using sqlite3. 
     'USER': 'postgres',      # Not used with sqlite3. 
     'PASSWORD': 'postgres',     # Not used with sqlite3. 
     'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
     'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
    } 
} 

누구나 전에 이와 같은 것을 생각해 냈습니다. 그냥 내 친구 컴퓨터에 syncdb'd 모든 파일을 복사하고 모두 잘 작동합니다.

+1

어리석은 순간. 내가 사용하고 있던 'postgres'기본 사용자에게는 뭔가 부족한 것이있었습니다. 나는 dave로 변했고, 나의 Mac의 슈퍼 유저는 syncdb를 돌렸다. 그리고 그것은 모두 일어 났고, 지금 일하고있다. – Djave

+1

답변은 이미 게시되었습니다. 그러나 한 가지 힌트 : 남쪽을 사용하십시오. 스키마 마이그레이션을 처리하며 사실상의 표준입니다. – guettli

+0

확실히 확인해 보겠습니다. 이미 필드를 만들었 으면 정확히 null = True로 설정해야합니다. 감사 – Djave

답변

0

실제로 테이블을 만들려면 manage.py syncdb이 필요합니다.

0

manage.py sql 실제로 SQL을 실행하지 않고 인쇄합니다.

관련 문제