我试图在GAE上获得续集。但我正在努力使用在非标准路径上使用套接字的云SQL代理。
我的理解是,网址会直接传递到pg库,并且基于this post,它会建议下面的字符串是我需要的
我已将数据库配置设置为
{
url: 'postgresql:///db_user:db_password@/db_name?host=./cloudsql/my-project-1234:us-central1:my-cloud-sql-instance',
dialect: 'postgres'
}
但是,如果我运行./node_modules/.bin/sequelize db:migrate
,我最终会收到错误:
ERROR: database "db_user:db_password@/db_name" does not exist
答案 0 :(得分:2)
经过大量的试验和错误后,可以使用主机变量传递套接字路径,但是有一些问题:
/
开头(否则它假设它是主机名)路径必须很短,不知道有多短,但如果我把它放在我的项目的子文件夹中(在我的主目录中),我得到ENOENT
(找不到文件),但是将套接字移动到根路径中的/cloudsql
会修复它。
(失败的路径只有111个字符(我的OSX限制为255,所以不确定它失败的原因。)成功的较短路径是61个字符)
< / LI>它会假设路径是目录并附加/.s.PGSQL.5432
(这很好,因为Google的SQL代理套接字在该文件中)
所以使用以下配置,我能够通过谷歌的云SQL代理运行数据库迁移:
{
username: 'my_user',
password: 'my_password',
database: 'my_database',
host: `/cloudsql/my-app-12345:us-central1:my_database`,
logging: false,
dialect: 'postgres',
// Google cloud_sql_proxy is encrypted, so no need to encrypt
ssl: false,
dialectOptions: {
ssl: false,
},
operatorsAliases: false,
}