2014-05-11 2 views
5

내 데이터베이스는 postgreSQL입니다. 나는 아래로 내 매개 변수를 설정 한 :doctrine을 통해 symfony2의 스키마에서 테이블을 쿼리하는 방법은 무엇입니까?

parameters: 
    database_driver: pdo_pgsql 
    database_host: 127.0.0.1 
    database_port: null 
    database_name: sandbox 
    database_user: postgres 
    database_password: postgres 
    mailer_transport: smtp 
    mailer_host: 127.0.0.1 
    mailer_user: null 
    mailer_password: null 
    locale: en 
    secret: ThisTokenIsNotSoSecretChangeIt 

문제는 내가 PostgreSQL에있는 기존 테이블을 조회하는 방법을 모른다는 것이다. MySQL에는 문제가 없지만 PostgreSQL에는 무엇을해야할지 실제로 알지 못합니다.

편집 :

# app/config/parameters.yml 
parameters: 
database_driver: pdo_mysql 
database_host: localhost 
database_name: test_project 
database_user: root 
database_password: password 

그리고는 내 데이터로 작업 개체를 만들 수 있습니다.

EDIT2 :


테이블은 이미 PostgreSQL을 만들어집니다. 연결 부분이 완료되었습니다. 나는 그것을 성공적으로 해냈다. 지금하고 싶은 것은 기존 테이블을 기반으로 엔티티를 만드는 것입니다. 지금은 훨씬 더 분명하고 아무도 어두운면에 없다고 생각합니다. ;-)

+0

MySQL을 사용하는 방법에 대한 예를 보여줄 수 있습니까? – Luke

+1

http://stackoverflow.com/questions/15280032/how-do-i-specify-which-schema-to-use-for-doctrine-2-2-symfony-2-2-and-postgres –

+0

수정 사항 , 왜'database_driver'가'pdo_mysql'으로 설정 되었습니까? 그것은'pdo_pgsql'일까요? – kix

답변

1

PostgreSQL과 MySQL의 설정은 매우 유사합니다. PHP와 함께 PostgreSQL을 사용하려면 Symfony2 PHP 파일 외부에서 변경해야합니다. php.ini 파일에서 pgsql의 확장 기능을 활성화하십시오. 이것은 당신이 PDO_PGSQL database_driver을 사용할 수 있도록 활성화해야합니다

php.ini 파일의 /etc/php5/apache2/php.ini, 추가 :이 후

extension=pdo.so 
extension=php_pdo_pgsql.so 

, 당신이 중 하나에 연결할 수 있습니다 테스트를 기존 데이터베이스를 갱신하거나 새 데이터베이스를 작성하십시오. 상황에 따라 스키마 작성 또는 검증을 수행하고 수신 한 오류를 게시하십시오.

+0

Postgres에 연결할 수 있습니다. 문제는 기존 테이블이 있고 그 엔티티가 없습니다. 나는 그 테이블을 쿼리하는 방법을 모른다. – ALH

+0

그래, 당신은 postgresql에 테이블을 가지고 있지만, 당신의 교향곡 프로젝트에이 테이블과 관련된 엔티티가 없다? 엔티티가 필요하며 엔티티 생성을 위해 리버스 엔지니어를 돕기 위해 교리를 사용할 수 있지만 엔티티가 완벽하게 생성되지는 않습니다. doctrine doc : orm : convert-mapping - [doctrine docs] (http://docs.doctrine-project.org)에 지정된대로 yml/path/to/mapping-path-converted-to- /en/2.0.x/reference/tools.html # reverse-engineering) – George

+0

이 symfony에서'php app/console doctrine : orm : convert-mapping'이 될 것입니다. –

1

필자는 orm이 아닌 dctrine dbal과 함께 postgres를 사용하여 symfony 응용 프로그램을 작성했습니다. 내 parameters.yml은 일반적으로이 같은 것입니다 :

database_driver: pdo_pgsql 
database_host: localhost 
database_port: 5432 
database_name: my_db_name 
database_user: my_user 
database_password: my_password 

당신이 데이터베이스에 연결하는 예를 들어 이 같은 테이블에 대한 당신의 실체를 만들 수 있다고 말했다 있기 때문에 다음에

<?php 
/* 
*@Entity 
*@Table(name="my_schema_name.my_table_name") 
*/ 
class Message 
{ 
    /** @Column(type="integer") */ 
    private $id; 
    /** @Column(length=140) */ 
    private $text; 
    /** @Column(type="datetime", name="posted_at") */ 
    private $postedAt; 
} 

에주의 테이블 이름에 대한 주석. 스키마와 테이블을 모두 지정하십시오. 그런 다음 dql을 사용하여 해당 테이블의 모든 레코드를 쿼리하십시오.

+0

답변 해 주셔서 감사합니다. 질문/감사에서 EDIT2 부분을 볼 수 있을까요? – ALH

관련 문제