Ben düzeltmeler inanıyorum iki ayarlamalar dışında, kelime için the documentation neredeyse kelime takip ediyorum.
İlk ayarı: Ben gereksiz ortadan DIRECTORY_SEPARATOR
in system/application/doctrine.php
:
//this produces "...system/application//fixtures"
$config = array('data_fixtures_path' => dirname(__FILE__) . DIRECTORY_SEPARATOR . '/fixtures',
//Replaced with:
$config = array('data_fixtures_path' => dirname(__FILE__) . DIRECTORY_SEPARATOR . 'fixtures',
Elde edilen yolları doğru görünür.
Ikinci ayar: oluşturulan modeller (örneğin models/User.php
) Doctrine_Record
uzatmak baz modelleri yüklemek gibi görünüyor, bu yüzden açık bir require()
her çağrı katmayan böylece gibi modellemek:
require('generated/BaseUser.php');
class User extends BaseUser { ... }
Yani, benim şimdiki sorun: o ilk defa tabloları oluşturmak için zamanı geldiğinde:
$ ./doctrine build-all-reload
build-all-reload - Are you sure you wish to drop your databases? (y/n)
y
build-all-reload - Successfully dropped database for connection named 'mydb'
build-all-reload - Successfully created database for connection named 'mydb'
build-all-reload - Created tables successfully
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'mydb.user' doesn't exist
Doktrin mutlu boş tabloları, tabloları damla damla veritabanları ve veritabanı oluşturmak gibi görünüyor, ama neden olmaz create masaları ben çözemiyorum. Açıkça Created tables successfully
diyor, ama SHOW TABLES;
döner "veritabanında bulunamadı tabloları."
Doktrin ALL PRIVILEGES
var ben aynı MySQL kullanıcı, kullanıyor.
Herhangi Doktrin tabloları oluşturmak olamaz neden fikir? Umarım sadece kör ve / veya aptal değilim.
Alternatif olarak, ben sadece bu sorunu hata ayıklamak için kendi üzerinde çalıştırabilirsiniz benim yaml şema veya modellere dayalı ifadeler CREATE SQL bir dosya üretebilir ben yolu var mı?