Tôi đang cố gắng sử dụng di chuyển lần đầu tiên trong dự án Propel đang phát triển của mình (vì vậy tôi không phải chèn lại 15MB dữ liệu), nhưng có một số khó khăn. Tôi đã thực hiện các thay đổi trong giản đồ của mình và chạy propel-gen diff
. Lần đầu tiên tôi nhận được lỗi rằng nó không thể tìm thấy tệp buildtime-conf.xml
của tôi. Tôi chưa làm một cái nào (vì nó không cần thiết), nhưng đọc rằng cấu trúc phải giống như runtime-conf.xml
. Tôi đã sao chép runtime-conf.xml
đến buildtime-conf.xml
. Và bây giờ nhận được lỗi sau:Propel PostgreSQL Migration không thể tìm thấy adapter
[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.
thời gian chạy và buildtime My files trông giống như sau:
<?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>
schema của tôi là dọc theo dòng này:
<?xml version="1.0" encoding="UTF-8"?>
<database name="project" defaultIdMethod="native">
<table schema="accounts" name="accounts" phpName="Account" package="accounts">
<column />
</table>
</database>
tôi đã cố gắng thay đổi buildtime-conf thành <datasource id="testing">
và lỗi đã thay đổi thành Unable to find adapter for datasource [testing]
. Vì vậy, lỗi nằm trong tệp buildtime-conf thực tế (không phải lược đồ), theo như tôi có thể nói. Tôi nghĩ có lẽ Propel không thể tìm thấy adapter của PostgreSQL (mặc dù nó hoạt động tốt trong thời gian chạy-conf của tôi), vì vậy tôi đã cố gắng thay đổi bộ điều hợp của tôi thành mysql
. Nó đến với cùng một không thể tìm thấy lỗi bộ chuyển đổi.
Tôi hoàn toàn mất, suy nghĩ?
Cập nhật: vì vậy tôi đã có thể đi vào /Propel/runtime/lib/Propel.php
và xác định vị trí dòng nơi ngoại trừ Unable to find adapter
bị ném. Tôi đã xác định biến bằng tay bằng cách thêm dòng self::$configuration['datasources'][$name]['adapter'] = 'pgsql'
và nó hoạt động. Điều này rõ ràng là không xác minh hữu ích cho bây giờ, vì tôi sẽ không thể cập nhật Propel mà không làm lại thay đổi này. Tôi đã bán self::$configuration
trong Propel.php và nó là NULL
, bất kỳ ý tưởng nào tại sao?
Bạn đang chạy phiên bản nào? Nếu nó là 1,6, vẫn còn trong hỗ trợ afaik - Tôi sẽ gửi một lỗi. Có vẻ như những thứ di chuyển không khởi tạo được kết nối, mặc dù tôi không biết thực sự là ruột. Ngoài ra, nếu bạn muốn nén một tệp schema.xml và build.properties đầy đủ, tôi sẽ thử di chuyển trên máy tính của tôi nếu bạn muốn (chưa thử chúng, nhưng giữ ý nghĩa để tìm hiểu nó!). – halfer