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. [翻译] TensorFlow Programmer's Guide之Frequently Asked Questions(问得频率最多的几个问题)

    目录: 特点和兼容性(Features and Compatibility) 建立一个TensorFlow图(Building a TensorFlow graph) 运行一个TensorFlow计算 ...

  2. VirtualBox 局域网独立主机设置

    网络地址转换(NAT)网卡用于分配虚拟机内网地址 桥接网卡用于分配母机内网地址 母机设置-网卡指定IP地址 常见坑有两个 坑1:记得把虚拟机防火墙关闭 坑2:虚拟机不可以ping主机,但母机可以pin ...

  3. [LeetCode] Remove Comments 移除注释

    Given a C++ program, remove comments from it. The program source is an array where source[i] is the ...

  4. [LeetCode] Find Permutation 找全排列

    By now, you are given a secret signature consisting of character 'D' and 'I'. 'D' represents a decre ...

  5. css 宽高自适应的div 元素 如何居中 垂直居中

    在我们 编写css 样式的时候经常会遇见一个问题 那就是一个 宽高未知的元素 要让他 垂直居中如何实现这个呢 下面是我常用的两种方法 上代码 下面的是 结构代码 <div class=" ...

  6. react-router 4实现代码分割(code spliting)

    官方一开始推荐的使用bundle-loader来做代码分割的方式感觉有点麻烦,而且代码看起来有点不舒服.而且需要一直依赖bunder-loader 一开始我想为什么不能像vue一样,直接使用ES的新特 ...

  7. 基于webpack的React项目搭建(一)

    前言 工欲善其事,必先利其器.为了更好的学习React,我们先简要的把开发环境搭建起来.本文主要介绍使用webpack搭建React项目,如果你对React或es6的基础语法还不了解,建议先去学习学习 ...

  8. [BJOI 2011]元素

    Description 相传,在远古时期,位于西方大陆的 Magic Land 上,人们已经掌握了用魔法矿石炼制法杖的技术.那时人们就认识到,一个法杖的法力取决于使用的矿石.一般地,矿石越多则法力越强 ...

  9. [NOI 2011]道路修建

    Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1条双向道 ...

  10. 【HNOI2004】L语言

    题目描述 标点符号的出现晚于文字的出现,所以以前的语言都是没有标点的.现在你要处理的就是一段没有标点的文章. 一段文章T是由若干小写字母构成.一个单词W也是由若干小写字母构成.一个字典D是若干个单词的 ...