개발 중 Propel 프로젝트에서 처음으로 마이그레이션을 사용하려고합니다 (따라서 15MB의 데이터를 다시 삽입 할 필요가 없습니다).하지만 몇 가지 어려움이 있습니다. 내 스키마에서 변경을 수행하고 propel-gen diff
을 실행했습니다. 먼저 buildtime-conf.xml
파일을 찾을 수 없다는 오류가 발생했습니다. 나는 (아직 필요하지 않았기 때문에) 아직 만들지 않았지만 그 구조가 runtime-conf.xml
과 같아야한다는 것을 읽었다. runtime-conf.xml
을 buildtime-conf.xml
에 복사했습니다. 이제 다음과 같은 오류가 나타납니다Propel PostgreSQL 마이그레이션 어댑터를 찾을 수 없습니다
[propel-sql-diff] Reading databases structure...
[phingcall] Unable to find adapter for datasource [project].
Execution of target "sql-diff" failed for the following reason: /var/www/project/vendor/propel/propel1/generator/build-propel.xml:317:26: Execution of the target buildfile failed. Aborting.
[phing] /var/www/project/vendor/propel/propel1/generator/build-propel.xml:317:26: Execution of the target buildfile failed. Aborting.
내 런타임 및 빌드 파일의 모습을 다음
<?xml version="1.0" encoding="UTF-8"?>
<database name="project" defaultIdMethod="native">
<table schema="accounts" name="accounts" phpName="Account" package="accounts">
<column />
</table>
</database>
내가 변경 시도 :
<?xml version="1.0" encoding="UTF-8"?>
<config>
<propel>
<datasources default="project">
<datasource id="project">
<adapter>pgsql</adapter>
<connection>
<dsn>pgsql:host=###.###.###.###;dbname=database</dsn>
<user>USER</user>
<password>PASS</password>
</connection>
</datasource>
</datasources>
</propel>
</config>
내 스키마이의 라인을 따라입니다 buildtime-conf는 <datasource id="testing">
이고 오류는 Unable to find adapter for datasource [testing]
으로 변경되었습니다. 그래서 오류는 실제 buildtime-conf 파일 (스키마가 아님)에 있습니다. 아마 Propel이 PostgreSQL의 어댑터를 찾을 수 없을 것이라고 생각했기 때문에 (심지어 런타임의 conf에서 잘 작동한다고해도) 어댑터를 mysql
으로 변경하려고 시도했습니다. 동일한 어댑터 오류를 찾을 수 없습니다.
나는 완전히 잃어버린 생각입니까?
업데이트 : 그래서 /Propel/runtime/lib/Propel.php
에 들어가서 Unable to find adapter
예외가 발생한 행을 찾을 수있었습니다. 나는 self::$configuration['datasources'][$name]['adapter'] = 'pgsql'
라인을 추가하여 수동으로 변수를 정의하고 작동한다. 이 변경 사항을 재실행하지 않고 Propel을 업데이트 할 수 없으므로 분명히 지금은 유용하지 않습니다. 나는 self::$configuration
을 Propel.php에 버렸고, 어떤 아이디어가 그 이유입니까? NULL
입니다.
self::$configuration['datasources'][$name]['adapter'] = 'mysql';
다음과 같은 오류가 발생합니다 :
Indirect modification of overloaded element of PropelConfiguration has no effect
의 추진의 최신 안정 버전에서
실행중인 버전은 무엇입니까? 그것이 1.6 인 경우 afaik를 계속 지원합니다. 버그를 신고합니다. 마이그레이션 작업이 연결을 초기화하지 않는 것처럼 보입니다. 실제로 내부 구조에 대해서는 전혀 알지 못합니다. 또한 전체 schema.xml 및 build.properties를 압축하려면 원하는 경우 내 컴퓨터에서 마이 그 레이션을 시도합니다 (아직 시도하지는 않았지만 주위를 둘러보아야 함을 의미합니다). – halfer