heroku只是用postgresql,而不能兼容sqlite数据库.所以很重要的一步就是在部署实际产品的时候将数据库类型修改为postgresql,否则你将无法push到heroku上去.

heroku官方的说明在这里:

https://devcenter.heroku.com/articles/sqlite3

你可以在rails创建的时候就默认使用postgresql数据库:

rails new you_web -d postgresql

否者你就在Gemfile中自己手动按实际需要修改数据库类型,但别忘记了config目录里的database.yml内容也要做对应修改,下面是一个例子:

development:
  adapter: postgresql
  encoding: unicode
  database: demo_app_development
  pool: 5
  username:
  password:

test:
  adapter: postgresql
  encoding: unicode
  database: demo_app_test
  pool: 5
  username:
  password:

production:
  adapter: postgresql
  encoding: unicode
  database: demo_app_production
  pool: 5
  username:
  password:

接下来在实际执行bundle install的时候会出点意外,因为你还没有在本地安装postgresql,在MacOS下你可以使用brew来安装:

brew install postgresql

这是因为pg gem有系统原生内容,所以需要一些头文件和库文件来帮助编译.接着再安装对应的gem:

gem install pg
bundle install

这下应该正常了,你可能还要按需求创建postgresql用户,和开启postgresql服务:

pg_ctl -D /usr/local/var/postgres start
//or
brew services start postgresql

具体功能你可以到postgresql官网上去查询.

你当然已经在Heroku的主页上注册并激活了用户,接下来你还要在本地安装heroku client,你可以在Heroku主页中下载安装,不过貌似基本龟速,所以你还得用brew来安装,必要时可以考虑FQ哪!

brew install heroic
//blablabla...
brew info heroku
heroku: stable 5.6.11-3b6a56e
Everything you need to get started with Heroku
https://cli.heroku.com
/usr/local/Cellar/heroku/5.6.11-3b6a56e (13,077 files, 81.6M) *
  Built from source on 2017-01-11 at 08:46:48
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/heroku.rb
==> Requirements
Required: arch ✔

好了,我们安装好了Heroku前端,现在需要用你注册的用户登录Heroku:

heroku login

然后现在进入Rails应用程序目录在Heroku在其服务器上创建一个区域放置你的application:

heroku create
Created http://stormy-cloud-5881.herokuapp.com/ |
git@heroku.com:stormy-cloud-5881.herokuapp.com
Git remote heroku added

不出意外的话,你已经在Heroku服务器上成功创建了对应的App,并且创建了一个名为heroku的git remote源.

现在你需要将你本地的web app推送到Heroku服务器中:

git push heroku master

这时如果你性急打开http://stormy-cloud-5881.herokuapp.com/这个heroku为你web app生成的地址,你可能要失望了,呈现在你面前的将会是一个错误页面:

不过别担心,什么都没出错,只是你需要将app配置中的一个选项打开,进入config/environments目录,打开其中的production.rb文件,将其中的config.serve_static_assets属性改为true,保存!

我们还需要在Heroku服务器上创建数据库文件,执行以下命令:

heroku run rake db:migrate

至此,Heroku的部署基本完成,你可以open你在Heroku上的网站了 ;)

Rails在MacOS上搭建Heroku部署环境的更多相关文章

  1. 如何在 macOS 上搭建 PHP 开发环境

    如何在 macOS 上搭建 PHP 开发环境 Linux, Nginx, MySQL, PHP $ php --version $ php -v # PHP 7.3.11 (cli) (built: ...

  2. 在 macOS 上搭建 Flutter 开发环境

    下载 Flutter SDK flutter官网下载:https://flutter.io/sdk-archive/#macos 若上述链接无法访问,可通过GitHub下载 https://githu ...

  3. 【JAVA】【Basic】MacOS上搭建JAVA开发环境

    1. JRE 1.1. 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html 1.1.1. dmg格式安装: ...

  4. 【Python】【Basic】MacOS上搭建Python开发环境

    1. Python3 1.1. 下载地址:https://www.python.org/downloads/mac-osx/ 1.1.1. PKG包安装: 没啥可说的,点点点,下一步而已,不用手动配置 ...

  5. 【Go】【Basic】MacOS上搭建GO开发环境

    1. GO下载 1.1. 下载地址:https://www.golangtc.com/download (需要科学上网) 1.1.1. PKG安装: 下载这个包:go1.9.2.darwin-amd6 ...

  6. Ruby on Rails Tutorial 第一章 之 Heroku部署

    1.目的:用Heroku将开发环境部署到生产环境中.Heroku专门用于部署Rails和其他Web应用,部署Rails应用的过程非常简单——只要源码纳入Git版本控制系统就好. 2.搭建Heroku部 ...

  7. 在WP8上搭建cocos2d-x开发环境

    在WP8上搭建cocos2d-x开发环境 转自:https://github.com/koowolf/cocos-docs/blob/master/manual/framework/native/in ...

  8. Windows系统上搭建Clickhouse开发环境

    Windows系统上搭建Clickhouse开发环境 总体思路 微软的开发IDE是很棒的,有两种:Visual Studio 和 VS Code,一个重量级,一个轻量级.近年来VS Code越来越受欢 ...

  9. 如何在Windows上搭建Android开发环境

    Android开发越来越火,许多小伙伴们纷纷学习Android开发,学习Android开发首要任务是搭建Android开发环境,由于大家 主要实在Windows 上开发Android,下面就详细给大家 ...

随机推荐

  1. __dict__

    类有一个__dict__字典属性,保存了当前类的每一个成员,举例如下: >>> class A: def __init__(self,value): self.value=value ...

  2. SQL类型注入

    前言: 继续进行未完成的sql注入学习 今天学习了各类型注入.前来进行总结. 目录: 数字型注入 字符型注入 提交注注入 GET注入 POST注入 COOKIE注入 正文: 数字型注入:www.xxx ...

  3. springboot集成jpa

    spring data jpa简介 spring data jpa是spring基于hibernate及jpa规范封装出来的一套持久层框架.该框架极大的降低了开发者工作量,提升开发效率.提供的关键字可 ...

  4. Java 线程池原理分析

    1.简介 线程池可以简单看做是一组线程的集合,通过使用线程池,我们可以方便的复用线程,避免了频繁创建和销毁线程所带来的开销.在应用上,线程池可应用在后端相关服务中.比如 Web 服务器,数据库服务器等 ...

  5. 功能整合(一):滚动条的变相隐藏、js控制div的渐变显示、滚动条监听

    1.滚动条的变相隐藏 思路: 1.  把body的横向,纵向的超出部分隐藏,宽设置100%:高设置100%.就没有body的滚动条了, 2.  然后把最外层的div的宽设置的比body的宽宽一点,把d ...

  6. HTTP你真的懂了吗?

    最近面试踩了些坑,自己看书看过的内容,即使能记得差不多,回答起来就是很混乱(绝望脸).比如HTTP的这几个问题,现在整理一下,一个点一个点的说! 1.    聊一聊你理解的HTTP 1)   Http ...

  7. 【Python3.6+Django2.0+Xadmin2.0系列教程之二】学生信息管理系统(入门篇)

    上一篇我们已经创建好了一个Xadmin的基础项目,现在我们将在此基础上构建一个同样很基础的学生信息管理系统. 一.创建模型 模型是表示我们的数据库表或集合类,并且其中所述类的每个属性是表或集合的字段, ...

  8. Struts2--验证框架

    Struts2的验证通过配置xml或者注解的方式.依赖与validationheworkflow接口(被默认的拦截器桟引入).validation接口执行验证并且创建一些列的错误域.workflow接 ...

  9. [测试题]gene

    Description Input Output Sample Input 3A+00A+A+ 00B+D+A- B-C+00C+ Sample Output bounded Hint 题解 //It ...

  10. 为了异常安全(swap,share_ptr)——Effecive C++

    互斥锁: 假设我们要在多线程中实现背景图片的控制: class PrettyMenu{ public: -- void changeBackground(std::istream& imgSr ...