Cập nhật
Google Cloud SQL bây giờ hỗ trợ truy cập trực tiếp, do đó, phương ngữ MySQLdb
hiện có thể được sử dụng. Kết nối đề nghị thông qua phương ngữ mysql đang sử dụng định dạng URL:
mysql+mysqldb://[email protected]/<dbname>?unix_socket=/cloudsql/<projectid>:<instancename>
mysql+gaerdbms
đã bị phản đối SQLAlchemy kể từ phiên bản 1.0
Tôi đi đây là câu trả lời ban đầu dưới đây trong trường hợp người khác vẫn thấy nó hữu ích.
Đối với những người ghé thăm câu hỏi này sau (và không muốn đọc qua tất cả các bình luận), SQLAlchemy bây giờ hỗ trợ Google Cloud SQL như các phiên bản 0.7.8 bằng cách sử dụng chuỗi kết nối/phương ngữ (xem: docs):
mysql+gaerdbms:///<dbname>
Ví dụ:
create_engine('mysql+gaerdbms:///mydb', connect_args={"instance":"myinstance"})
tôi đã đề xuất một update vào phương ngữ mysql+gaerdmbs://
để hỗ trợ cả API Google Cloud SQL (rdbms_apiproxy
và rdbms_googleapi
) để kết nối với Cloud SQL từ phiên bản sản xuất không phải của Google App Engine (ví dụ: máy trạm phát triển của bạn).Thay đổi cũng sẽ sửa đổi chuỗi kết nối một chút bằng cách bao gồm dự án và cá thể như là một phần của chuỗi và không yêu cầu được chuyển riêng thông qua connect_args
.
Ví dụ:
mysql+gaerdbms:///<dbname>?instance=<project:instance>
Điều này cũng sẽ làm cho nó dễ dàng hơn để sử dụng đám mây SQL với Flask-SQLAlchemy hoặc mở rộng khác, nơi mà bạn không thực hiện một cách rõ ràng create_engine()
gọi.
Nếu bạn gặp sự cố khi kết nối với Google Cloud SQL từ máy trạm phát triển của mình, bạn có thể muốn xem câu trả lời của tôi tại đây - https://stackoverflow.com/a/14287158/191902.
Nguồn
2012-06-05 16:07:24
FYI cho bất kỳ ai khác tình cờ gặp câu trả lời này: Phương pháp này không còn được đề xuất bởi SQLAlchemy; sử dụng phương ngữ MySQLdb thay vào đó: [doc link] (http://docs.sqlalchemy.org/en/latest/dialects/mysql.html?highlight=appengine#module-sqlalchemy.dialects.mysql.gaerdbms) – eaj