2012-07-10 3 views
1

를 생성하기 위해 현재 프로젝트 django-storages Database storage backend을 찾고-굉장하지만 :PostgreSQL의 SQL 문은 내가 사용해야하는 사용자 정의 BLOB 저장소 테이블

이 데이터베이스 모양에 파일 이름에 매핑하는 데 사용할 수 있습니다 그래서 당신은 사용해야합니다 수동으로 생성 된 특별한 추가 테이블이 있습니다. 이 테이블에는 파일 이름에 대한 pk-column (FileField에서 사용하는 것과 동일한 유형 (nvarchar (100)), blob 필드 (예 : 이미지 유형) 및 size 필드 (bigint))을 사용해야합니다.

나는 그것을 인정할 것이다. ORM이 날 망쳐 놨어. SQL 문을 작성한 이후로 얼마 지나지 않아 PostgreSQL의 SQL & BLOB에 익숙하지 않았습니다.

그래서, 누군가 적절한 컬럼 유형과 함께 위에서 언급 한 3 개의 컬럼 (FILE_NAME, BLOB, FILE_SIZE)을 가진 Postgres CREATE TABLE 문을 도와 주실 수 있습니까?

+0

누구라도 궁금 할 경우. PostgreSQL과 기본적으로 호환되지 않기 때문에 라이선스 문제가있어 데이터베이스 저장 백엔드를 사용하지 않아 결국 좋은 인상을주지 못했습니다. 텍스트 필드와 base64 인코딩을 사용하는 사용자 지정 저장소 백엔드를 여기에 권장하는대로 작성했습니다. http://wiki.postgresql.org/wiki/BinaryFilesInDB, 정말 멋지 네요. 네가 나에게 다가 갈 수 있다면 기꺼이 나눌 수있다. –

답변

3

일반적으로 PostgreSQL의 blob에는 bytea 유형의 열을 사용합니다. 귀하의 문은 다음과 같을 수 있습니다 : SQL 서버처럼 PostgreSQL의에는 nvarchar을 없다

CREATE TABLE (
    file_name text PRIMARY KEY 
,blob bytea 
,file_size bigint 
); 

. varchar(100)을 사용할 수는 있지만 text 대신 수정자를 사용하는 것이 좋습니다.

얼룩을 저장할 다른 옵션이 있습니다. 이 related answer for more을 참조하십시오.