gpt4 book ai didi

postgresql - 如何在Cloud9上使用Rails Composer和postgreSQL并在Heroku上进行部署

转载 作者:行者123 更新时间:2023-11-29 11:31:38 25 4
gpt4 key购买 nike

使用Rails ComposerCloud9上使用postgreSQL创建rails应用程序并在Heroku上部署的过程充满了可能会让新开发人员感到困惑的警告和错误。有什么指导可以帮助我完成这个过程并部署我的starter应用程序吗?

最佳答案

我相信rails composer、cloud9和heroku以及后者推荐的postgreSQL数据库,尽管它们一起使用有很多小细节,但是没有一个源代码能够解释如何使用它们。在花了很多晚上的时间来解决这个问题之后,我创建了以下说明列表,这些说明在发布日期和时间之前都有效。
在cloud9上创建新工作区
在工作区上设置postgreSQL数据库:
$sudo服务postgresql启动
$sudo sudo-u后缀psql
postgres=#创建用户用户名超级用户密码'PASSWORD';
创建角色
postgres=#\q
选择heroku上可用的应用程序的名称,因为它要么是您拥有的应用程序,要么是heroku上仍可用的应用程序。您可以访问[潜在域名].herokuapp.com查看可用性

$ mkdir ["your app's directory/domain name"]

$ cd ["your app's directory/domain name"]

Rails Composer当前使用的gems使用ruby版本2.2.3,因此必须使用以下代码将其安装在rvm中:
$ rvm install 2.2.3

$ ruby -v

ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

$ rvm use ruby-2.2.3@[your app name] --ruby-version --create

$ gem install rails --no-ri --no-rdoc

创建一些局部变量并保存一些值。
$ echo "export USERNAME=username" >> ~/.profile
$ echo "export PASSWORD=password" >> ~/.profile
将应用的域名作为本地环境变量输入,并在cl上输入以下代码:
$ echo "export DOMAIN_NAME=[domain name].herokuapp.com" >> ~/.profile
接下来,devise要求将超长密钥设置为环境变量。创建rails应用程序后,rake可以使用cl上的 $ rake secret命令生成这样的密钥。由于我们还没有使用composer生成rails应用程序,rake将无法工作。不过,我们也会做同样的事情,使用irb和securerandom,正如James Badger在他的博客中所描述的那样, Generate a New Secret Token for Rails Apps
$ irb
2.2.3 :001 > require 'securerandom'
=> true
2.2.3 :002 > SecureRandom.hex(64)
=> "137d8b4bf436e670e2eea63372494b84aa25900edb1328eb5c1367f5100fe114fc95313f8772428dbda89ed84086e87a26428ef524951f94fd0375d4e399b613"
2.2.3 :003 > exit

我们(你和我)在生产中应该用另一个。
$ echo "export SECRET_KEY_BASE=137d8b4bf436e670e2eea63372494b84aa25900edb1328eb5c1367f5100fe114fc95313f8772428dbda89ed84086e87a26428ef524951f94fd0375d4e399b613" >> ~/.profile
重新启动终端以便设置ENV变量。在terminal中单击鼠标右键并选择“重新启动所有终端”将在cloud9中执行此操作。重新启动终端可能会返回到根目录。如果是这样,请使用以下命令切换到cl上的新应用程序目录:
$ cd [your app directory]

现在你们都准备好加速 Rails Composer
$ rails new . -m https://raw.github.com/RailsApps/rails-composer/master/composer.rb

下面是我的rails作曲家的选择,虽然您的选择可能会有所不同,但它们可能对您有用。
创建入门应用程序?:3—选择创建自定义rails应用程序
开发服务器:4-彪马
生产服务器:1-与开发相同
开发数据库:2-PostgresSQL
模板引擎:2-Haml
试验环境:水豚2-rspec
连续测试:1-无
前端框架:2--bootstrap 3.3
电子邮件支持:1—无
认证:2——设计
设计模块:1—使用默认模块设计
授权:1—无
表单生成器gem:2——simpleform
添加页面:5——主页、关于和用户
添加引导页面模板?[您可以在 startbootstrap.com模板网页上查看选项。]
设置本地?:[返回/英语为空]
页面视图分析:2——谷歌分析
在google上生成一个google分析ID并将其输入。
准备部署:2——heroku
禁用Rails Turbolinks?:n个
禁止蜘蛛:n
创建github存储库:n——我计划使用bitbucket
为环境变量添加gem和文件?:1个
降低开发过程中的资产记录器噪音:y
在开发过程中用“更好的错误”改进错误报告?是的
在开发和测试期间使用“撬”作为控制台更换:y
使用“rubocop”确保代码符合Ruby风格指南?是的
创建特定于项目的rvm gemset?是的
添加“therubyracer”?n个
[正在创建应用程序!]
PostgreSQL的用户名(留空以使用应用程序名)用户名#根据我在上面输入的内容创建本地pg数据库
在database.yml中为PostgreSQL提供主机?(留空以使用默认套接字连接)留空
密码也给出了我在上面输入的创建本地pg数据库的密码
删除所有现有的数据库(你的应用程序名称)吗?是的
在git上提交最终更改
有一个最后的提交,Rails Composer似乎出于某种原因而跳过了。。。执行以下操作:
$ git add .

$ git commit -am “Final rails_composer commit”

遵循“AA>”的方向为现有项目创建新的存储库并从命令行推送
遵循heroku上 bitbucket的说明,包括以下内容:
$ heroku login

在提示下输入heroku凭据。
$ heroku create [your app name (without the herokuapp.com stored as a local variable above)]

使用以下命令验证是否添加了heroku remote:
$ git config --list | grep heroku

$ git push heroku master

现在您已经在heroku上创建了应用程序,您还必须在其中添加一些环境变量,并使用以下命令:
$ heroku config:set DOMAIN_NAME=[your app name].herokuapp.com

$ rake secret # uses rake to generate a new secret key

5ed8c7d9a3bda9cec3887b61f22aa95bf430a3a550407642b96751c7ef0ce8946a161506d6739da0dcaaea8c8f4f8b3335b1fb549e3cc54f0a4cec554ede05f8
将新的密钥剪切并粘贴到下面的命令中,以设置Heroku环境变量。
$ heroku config:set SECRET_KEY_BASE=5ed8c7d9a3bda9cec3887b61f22aa95bf430a3a550407642b96751c7ef0ce8946a161506d6739da0dcaaea8c8f4f8b3335b1fb549e3cc54f0a4cec554ede05f8

注意:您应该使用 $ rake secret生成一个与我在上面代码中包含的密钥库不同的密钥库。
现在您可以迁移heroku数据库:
$ heroku run rake db:migrate

创建Procfile
$ touch Procfile

[程序文件]
web: bundle exec puma -C config/puma.rb

$ touch config/puma.rb

[配置/puma.rb]
workers Integer(ENV['WEB_CONCURRENCY'] || 2)
threads_count = Integer(ENV['MAX_THREADS'] || 5)
threads threads_count, threads_count

preload_app!

rackup DefaultRackup
port ENV['PORT'] || 3000
environment ENV['RACK_ENV'] || 'development'

on_worker_boot do
# Worker specific setup for Rails 4.1+
# See: https://devcenter.heroku.com/articles/deploying-rails-applications-with-the-puma-web-server#on-worker-boot
ActiveRecord::Base.establish_connection
end

因为我不希望我的应用程序获得太多流量,也不能保证它是线程安全的:
$ heroku config:set MIN_THREADS=1 MAX_THREADS=1

使用以下命令提交该Procfile和puma配置文件:
$ git add .

$ git commit -m "Add Procfile and config/puma.rb"

$ git push && git push heroku

我希望这些指示是有用的。请随意添加和改进。

关于postgresql - 如何在Cloud9上使用Rails Composer和postgreSQL并在Heroku上进行部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33727047/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com