首页 > 解决方案 > Rake db:migrate 不在 Google Cloud SQL 上创建表

问题描述

我有一个基本的 Rails 应用程序,我正在尝试使用 Google Cloud SQL Postgres 数据库作为后端。但是,当我运行时rake db:migrate,没有错误,也没有在我们的development环境 GCP 数据库中创建表。

我可以通过 sql 客户端登录到 GCP Postgres 数据库,这样我就可以使用凭据了。我能够通过客户端创建和删除表。

有没有我遗漏的细节?我在用:

Rails 4.2.11.1
ruby 2.5.0p0

下面是我的 Gemfile 和 database.yml 的重要内容。

# Gemfile
gem "rails", "~> 4.2.8"   
group :production, :development do   
  gem "pg", "~> 0.21"   
end

group :test do   
   gem "sqlite3", "~> 1.3.11" 
end



# database.yml
postgres_settings: &postgres_settings    
  adapter: postgresql  
  encoding: utf8  
  pool: 5  
  username: postgres 
  password: <saved>
  database: <saved>
  socket: /cloudsql/<instance connection name>

development:      
  <<: *postgres_settings 

production: 
  <<: *postgres_settings 

test: 
  adapter: sqlite3  
  pool: 5   
  timeout: 5000 
  database: db/test.sqlite3 

标签: ruby-on-railspostgresqlgoogle-cloud-sql

解决方案


阅读您的 yml 文件,我可以看到在“postgres_settings”部分中您没有设置“主机”标签。

在 GitHub 链接[1] 中,您可以找到将 ruby​​ 连接到 postgresql 的模板,这些模板是 GCP 发布的教程“Bookshelf application with Ruby”[2] 中示例的一部分。

我希望这对你有帮助,如果没有,请告诉我。

[1] https://github.com/GoogleCloudPlatform/getting-started-ruby/blob/master/2-postgresql/config/database.example.yml [2] https://cloud.google.com/ruby/getting -开始/教程应用


推荐阅读