스칼라 플레이 2.5.x 프레임 워크 또는 PostgreSQL에 연결하는 데 내 문제점이 있는지 잘 모르겠습니다. 따라서 설정을 설명하려고합니다.PostgreSQL을 사용하는 Scala Play 프로젝트에서 '공개'스키마를 기본으로 만드는 방법은 무엇입니까?
BigSQL Sandboxes에서 Scala와 PostgreSQL 9.5.4-2로 Play 2.5.6을 사용하고 있습니다. Play Framework 기본 진화 패키지를 사용하여 DB 버전을 관리합니다.
BigSQL Sandbox의 새 데이터베이스를 만들었습니다. PGSQL과 PGSQL은 public이라는 기본 스키마를 만들었습니다. 나는이 스키마를 개발 용으로 사용한다.
내가 (DB 진화 설정에서 1.sql
) 다음과 같은 스크립트를 사용하여 테이블을 작성하고 싶습니다 :
val resultSet = statement.executeQuery("SELECT id, name, email FROM public.user WHERE id=" + id.toString)
:이 같은 코드로 테이블을 읽고 싶습니다 게다가
# Initialize the database
# --- !Ups
CREATE TABLE user (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
email TEXT NOT NULL,
creation_date TIMESTAMP NOT NULL
);
# --- !Downs
DROP TABLE user;
언급 된 코드를 실행하고 싶거나 pgadmin에서 CREATE TABLE...
코드를 사용하더라도 오류가 발생했습니다. 문제는 user
테이블 이름입니다. 접두사를 접두어로 사용하면 public
(즉, public.user
) 모두 올바르게 작동합니다.
내 질문은 :
- 는 스키마 이름마다 시간에 테이블 이름을 접두사로 정상인가요? 나는 이상하게 보입니다.
- 테이블 이름을 한정 할 필요가 없도록
public
스키마를 기본 옵션으로 만들려면 어떻게해야합니까? (예 :제대로ALTER database "my_database" SET search_path TO my_schema;
search_path
: 내 데이터베이스에 대한search_path
을 설정ALTER USER my_user SET search_path to public;
- :
- 내가 내 사용자에 대한
search_path
을 설정CREATE TABLE user (...);
나는 다음과 같은 시도) 오류가 발생하지 않습니다 이것을 보여줍니다 :
"$user",public
- 내가 내 사용자에 대한
p.a.d.e.DefaultEvolutionsApi - ERROR: syntax error at or near "user"
:
플레이에서- :
오류 : 구문에서 오류 또는 근처 "사용자"
LINE 1 : CREATE TABLE 사용자 (515,
나는 다음과 같은 오류가있어
********** 오류 **********
오류 : 구문에서 오류 또는 근처 "사용자"
SQL 상태 : 42601
문자 : 14
해결책이었습니다. 고마워요! 이 경우 오류 메시지가 도움이되지 않는다고 생각합니다. 그건 그렇고, 나는 왜 내가 구글에서 이것을 발견하지 못했는지 알아보기 위해 짧은 연구를했다. 나는 "테이블 사용자 생성"단계로 검색해야했습니다. 그렇게하면 다른 답변을 찾을 수 있습니다. http://stackoverflow.com/questions/22256124/cannot-create-a-database-table-named-user-in-postgresql :) "user_account"이름을 사용했습니다. –