2010-08-03 2 views
9

Tôi đang bận với Doctrine2, nhưng tôi không thể làm cho nó hoạt động.Cấu hình Doctrine 2 với MySQL

Mọi thứ hoạt động tốt với hộp có sqlite. Nhưng khi tôi cố gắng thay đổi cơ sở dữ liệu trong bản demo sandbox thành MySQL, tôi đang bối rối. Đây là những gì tôi đã làm. Tôi tạo ra một cơ sở dữ liệu, thay đổi mảng connectionOptions tới:

$connectionOptions = array(
    'driver' => 'pdo_mysql', 
    'path' => __DIR__.'/mysql.php' 
); 

các 'con đường' entry tồn tại và trông như thế này:

$connectionParams = array(
    'dbname' => 'db_test', 
    'user' => 'test', 
    'password' => 'p4ssw0rd', 
    'host' => 'localhost', 
    'driver' => 'pdo_mysql', 
); 

Khi tôi chạy lệnh để tạo ra các cơ sở dữ liệu:

php doctrine orm:schema-tool:create 

Điều này mang lại cho tôi lỗi:

no database selected 

Dường như là một thông điệp rõ ràng. Nhưng làm thế nào tôi có thể thay đổi databasename, gây ra một trong những quy định trong mysql.php (xem ở trên) không excist và phải là một trong những nó sử dụng! Tôi đã tìm kiếm nó hàng giờ liền, nhưng tôi không thể tìm thấy nó ở bất cứ đâu.

+0

Bạn có thể chỉ cho chúng tôi thêm một số mã, khó chẩn đoán chỉ với hai dòng. Cảm ơn! –

Trả lời

10

Đây có phải là hộp cát Doctrine 2 không? Điều này làm việc cho tôi:

// sandbox/bootstrap.php 

$connectionOptions = array(
    'driver' => 'pdo_mysql', 
    'host'  => '127.0.0.1', 
    'dbname' => 'your_database_name', 
    'user'  => 'username', 
    'password' => 'password' 
); 

$em = EntityManager::create($connectionOptions, $config); 
+1

Tôi đã xem xét và đây là bản sửa lỗi! Cảm ơn rất nhiều ... –

+0

Trong câu trả lời 'đường dẫn' này nên được thay đổi thành 'máy chủ' để làm việc với các phiên bản mới nhất của học thuyết. –

+0

Đã cập nhật. Cảm ơn. Tôi nghĩ Doctrine vẫn còn là phiên bản beta khi câu hỏi này ban đầu được nêu ra. –

-1

Mã Cookbook cũng có sẵn để tải xuống. Xem here để biết chi tiết. Hãy xem cli-config.php sau khi bạn tải xuống.

+0

Liên kết này hiện ở sau một blog riêng tư. –

+0

@Kevin Sedgley Vâng, tôi đã không nhắn tin với Doctrine trong một thời gian dài, và mục nhập đó là từ năm 2010. Vì vậy, bây giờ, thông tin trong liên kết có thể đã lỗi thời. Bạn có thể kiểm tra https://github.com/kkruecke/doctrine-2-cookbook –