{"id":486,"date":"2019-01-11T15:07:05","date_gmt":"2019-01-11T12:07:05","guid":{"rendered":"https:\/\/artem.services\/?p=486"},"modified":"2019-01-16T13:43:10","modified_gmt":"2019-01-16T10:43:10","slug":"heroku-ruby-on-rails","status":"publish","type":"post","link":"https:\/\/artem.services\/?p=486","title":{"rendered":"Heroku &#8212; Ruby on Rails"},"content":{"rendered":"<h3><img loading=\"lazy\" class=\"size-full wp-image-497 aligncenter\" src=\"https:\/\/artem.services\/wp-content\/uploads\/2019\/01\/Heroku-Logo.png\" alt=\"\" width=\"596\" height=\"185\" srcset=\"https:\/\/artem.services\/wp-content\/uploads\/2019\/01\/Heroku-Logo.png 596w, https:\/\/artem.services\/wp-content\/uploads\/2019\/01\/Heroku-Logo-300x93.png 300w\" sizes=\"(max-width: 596px) 100vw, 596px\" \/>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b<\/h3>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\napt install curl git gnupg2 nodejs\r\n<\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c <strong>RVM<\/strong><\/p>\n<p>\u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0441\u0430\u0439\u0442 <a href=\"https:\/\/rvm.io\" target=\"_blank\" rel=\"noopener\">rvm.io<\/a> \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB\r\ncurl -sSL https:\/\/get.rvm.io | bash -s stable\r\n<\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0443:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvim \/etc\/group\r\n<\/pre>\n<pre>rvm:x:1001:ubuntu<\/pre>\n<blockquote><p>\u0418\u043c\u044f \u043c\u043e\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 &#8212; <strong>ubuntu<\/strong><\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>\u0417\u0430\u0442\u0435\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsource \/etc\/profile.d\/rvm.sh\r\n<\/pre>\n<p><!--more--><\/p>\n<p>\u0423\u0437\u043d\u0430\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e <strong>RVM<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrvm --version\r\n<\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0432\u0435\u0440\u0441\u0438\u0439 <strong>Ruby<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrvm list known\r\n<\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c <strong>Ruby<\/strong> \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0439 \u0432\u0435\u0440\u0441\u0438\u0438:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrvm install &quot;ruby-2.5.1&quot;\r\n<\/pre>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0445 <strong>Ruby<\/strong> \u0432\u0435\u0440\u0441\u0438\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0443\u044e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0442\u0430\u043a:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrvm list\r\n<\/pre>\n<p>\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0432\u0435\u0440\u0441\u0438\u044e <strong>gem<\/strong> \u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u043c \u0435\u0435:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngem -v\r\ngem update --system\r\n<\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c <strong>Rails<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngem install rails\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f<\/h3>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nrails new example_app -T\r\n<\/pre>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncd example_app\r\n<\/pre>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430 <strong>index.html<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvim public\/index.html\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0412\u0441\u0442\u0430\u0432\u0438\u043c \u0442\u0443\u0434\u0430 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre class=\"brush: xml; title: ; notranslate\" title=\"\">\r\n&lt;!DOCTYPE html&gt;\r\n&lt;html&gt;\r\n    &lt;head&gt;\r\n        &lt;title&gt;Ruby&lt;\/title&gt;\r\n    &lt;\/head&gt;\r\n    &lt;body&gt;\r\nExample Ruby App\r\n    &lt;\/body&gt;\r\n&lt;\/html&gt;\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u0430 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430\u0445:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nbundle exec rails s -p 3000 -b '0.0.0.0'\r\n\r\n=&gt; Booting Puma\r\n=&gt; Rails 5.2.2 application starting in development \r\n=&gt; Run `rails server -h` for more startup options\r\nPuma starting in single mode...\r\n* Version 3.12.0 (ruby 2.5.1-p57), codename: Llamas in Pajamas\r\n* Min threads: 5, max threads: 5\r\n* Environment: development\r\n* Listening on tcp:\/\/0.0.0.0:3000\r\nUse Ctrl-C to stop\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435:<\/p>\n<pre>1.2.3.4:3000<\/pre>\n<blockquote><p>\u0413\u0434\u0435 <strong>1.2.3.4<\/strong> &#8212; IP \u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430, \u0433\u0434\u0435 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435<\/p><\/blockquote>\n<p>\u0415\u0441\u043b\u0438 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u0435\u0441\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0430, \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c <strong>IP<\/strong> \u0430\u0434\u0440\u0435\u0441 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0438 \u0437\u0430\u0439\u0442\u0438 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043f\u043e \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442\u0443. \u0422\u0430\u043a \u0436\u0435 \u0431\u0435\u0437 \u0433\u0440\u0430\u0444\u0438\u043a\u0438 \u043b\u043e\u043a\u0430\u043b\u0445\u043e\u0441\u0442 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043a\u0443\u0440\u043b\u043e\u043c \u0438\u043b\u0438 \u043a\u043e\u043d\u0441\u043e\u043b\u044c\u043d\u044b\u043c \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u043c<\/p>\n<p>\u041c\u043e\u0436\u043d\u043e \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 &#8212; <strong>Ctrl-C<\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3>Git<\/h3>\n<p>\u041d\u0430\u0445\u043e\u0434\u044f\u0441\u044c \u0432 \u043a\u043e\u0440\u043d\u0435 \u043d\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043d\u0438\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit init\r\n\r\nReinitialized existing Git repository in \/home\/ubuntu\/heroku\/example_app\/.git\/\r\n<\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c \u0441\u0442\u0430\u0442\u0443\u0441:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit status\r\n\r\nOn branch master\r\n\r\nNo commits yet\r\n\r\nUntracked files:\r\n  (use &quot;git add &lt;file&gt;...&quot; to include in what will be committed)\r\n\r\n        .gitignore\r\n        .ruby-version\r\n        Gemfile\r\n        Gemfile.lock\r\n        README.md\r\n        Rakefile\r\n        app\/\r\n        bin\/\r\n        config.ru\r\n        config\/\r\n        db\/\r\n        lib\/\r\n        log\/\r\n        package.json\r\n        public\/\r\n        storage\/\r\n        tmp\/\r\n        vendor\/\r\n\r\nnothing added to commit but untracked files present (use &quot;git add&quot; to track)\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u0441\u0435 \u0444\u0430\u0439\u043b\u044b:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit add .\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u0418 \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043c\u0438\u0442:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit commit -am &quot;Add Ruby files to repo&quot;\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit status\r\n\r\nOn branch master\r\n\r\nNo commits yet\r\n\r\nChanges to be committed:\r\n  (use &quot;git rm --cached &lt;file&gt;...&quot; to unstage)\r\n\r\n        new file:   .gitignore\r\n        new file:   .ruby-version\r\n        new file:   Gemfile\r\n        new file:   Gemfile.lock\r\n        new file:   README.md\r\n        new file:   Rakefile\r\n        new file:   app\/assets\/config\/manifest.js\r\n        new file:   app\/assets\/images\/.keep\r\n        new file:   app\/assets\/javascripts\/application.js\r\n        new file:   app\/assets\/javascripts\/cable.js\r\n        new file:   app\/assets\/javascripts\/channels\/.keep\r\n        new file:   app\/assets\/stylesheets\/application.css\r\n        new file:   app\/channels\/application_cable\/channel.rb\r\n        new file:   app\/channels\/application_cable\/connection.rb\r\n        new file:   app\/controllers\/application_controller.rb\r\n        new file:   app\/controllers\/concerns\/.keep\r\n        new file:   app\/helpers\/application_helper.rb\r\n        new file:   app\/jobs\/application_job.rb\r\n        new file:   app\/mailers\/application_mailer.rb\r\n        new file:   app\/models\/application_record.rb\r\n        new file:   app\/models\/concerns\/.keep\r\n        new file:   app\/views\/layouts\/application.html.erb\r\n        new file:   app\/views\/layouts\/mailer.html.erb\r\n        new file:   app\/views\/layouts\/mailer.text.erb\r\n        new file:   bin\/bundle\r\n        new file:   bin\/rails\r\n        new file:   bin\/rake\r\n        new file:   bin\/setup\r\n        new file:   bin\/spring\r\n        new file:   bin\/update\r\n        new file:   bin\/yarn\r\n        new file:   config.ru\r\n        new file:   config\/application.rb\r\n        new file:   config\/boot.rb\r\n        new file:   config\/cable.yml\r\n        new file:   config\/credentials.yml.enc\r\n        new file:   config\/database.yml\r\n        new file:   config\/environment.rb\r\n        new file:   config\/environments\/development.rb\r\n        new file:   config\/environments\/production.rb\r\n        new file:   config\/environments\/test.rb\r\n        new file:   config\/initializers\/application_controller_renderer.rb\r\n        new file:   config\/initializers\/assets.rb\r\n        new file:   config\/initializers\/backtrace_silencers.rb\r\n        new file:   config\/initializers\/content_security_policy.rb\r\n        new file:   config\/initializers\/cookies_serializer.rb\r\n        new file:   config\/initializers\/filter_parameter_logging.rb\r\n        new file:   config\/initializers\/inflections.rb\r\n        new file:   config\/initializers\/mime_types.rb\r\n        new file:   config\/initializers\/wrap_parameters.rb\r\n        new file:   config\/locales\/en.yml\r\n        new file:   config\/puma.rb\r\n        new file:   config\/routes.rb\r\n        new file:   config\/spring.rb\r\n        new file:   config\/storage.yml\r\n        new file:   db\/seeds.rb\r\n        new file:   lib\/assets\/.keep\r\n        new file:   lib\/tasks\/.keep\r\n        new file:   log\/.keep\r\n        new file:   package.json\r\n        new file:   public\/404.html\r\n        new file:   public\/422.html\r\n        new file:   public\/500.html\r\n        new file:   public\/apple-touch-icon-precomposed.png\r\n        new file:   public\/apple-touch-icon.png\r\n        new file:   public\/favicon.ico\r\n        new file:   public\/index.html\r\n        new file:   public\/robots.txt\r\n        new file:   storage\/.keep\r\n        new file:   tmp\/.keep\r\n        new file:   vendor\/.keep\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3>Heroku<\/h3>\n<p>\u0420\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u043d\u0430 <a href=\"https:\/\/heroku.com\" target=\"_blank\" rel=\"noopener\">heroku.com<\/a> \u0438 \u0437\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u0430\u043a\u043a\u0430\u0443\u043d\u0442.<\/p>\n<p>\u0414\u043b\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <strong>Heroku<\/strong> \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c \u0438\u0445 <strong>CLI<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo snap install --classic heroku\r\n<\/pre>\n<p>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u043b\u044f \u0434\u0438\u0441\u0442\u0440\u0438\u0431\u0443\u0442\u0438\u0432\u043e\u0432 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u0442 <strong>Ubuntu<\/strong> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0430\u0439\u0442\u0435 <a href=\"https:\/\/devcenter.heroku.com\/articles\/heroku-cli#download-and-install\" target=\"_blank\" rel=\"noopener\">Heroku<\/a><\/p>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u043c:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nheroku --version\r\n\r\nheroku\/7.19.4 linux-x64 node-v11.3.0\r\n<\/pre>\n<p>\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0443\u0435\u043c\u0441\u044f \u0432 <strong>Heroku CLI<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nheroku login\r\n<\/pre>\n<p>\u0416\u043c\u0435\u043c \u043b\u044e\u0431\u043e\u044e \u043a\u043b\u0430\u0432\u0438\u0448\u0443 \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c <strong>URL<\/strong> \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u043f\u0438\u0440\u0443\u0435\u043c \u0435\u0435 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u043b\u043e\u0433\u0438\u043d\u0438\u043c\u0441\u044f.<\/p>\n<p>\u0421\u043e\u0437\u0434\u0430\u0434\u0438\u043c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 <strong>Heroku<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nheroku create\r\n\r\nCreating app... done, \u2b22 my-generated-app-name-83844\r\nhttps:\/\/my-generated-app-name-83844.herokuapp.com\/ | https:\/\/git.heroku.com\/my-generated-app-name-83844.git\r\n<\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u0432 <strong>Gemfile<\/strong> \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c &quot;<strong>sqlite3<\/strong>&quot; \u043d\u0430 &quot;<strong>postgres<\/strong>&quot;, \u0438\u043d\u0430\u0447\u0435 <strong>Heroku<\/strong> \u0432\u044b\u0434\u0430\u0441\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nremote: An error occurred while installing sqlite3 (1.3.13), and Bundler cannot\r\nremote: continue.\r\nremote: Make sure that `gem install sqlite3 -v '1.3.13'` succeeds before bundling.\r\nremote:\r\nremote: In Gemfile:\r\nremote: sqlite3\r\nremote:\r\nremote: !\r\nremote: ! Failed to install gems via Bundler.\r\nremote: ! Detected sqlite3 gem which is not supported on Heroku:\r\nremote: ! https:\/\/devcenter.heroku.com\/articles\/sqlite3\r\nremote: !\r\nremote: ! Push rejected, failed to compile Ruby app.\r\n<\/pre>\n<p>\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c <strong>Gemfile<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvim Gemfile\r\n<\/pre>\n<p>\u041d\u0430\u0445\u043e\u0434\u0438\u043c \u0432 \u043d\u0430\u0447\u0430\u043b\u0435 \u0444\u0430\u0439\u043b\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043e <strong>sqlite3<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngem 'sqlite3'\r\n<\/pre>\n<p>\u0418 \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u043c \u0435\u0435 \u0432 \u0431\u043b\u043e\u043a &quot;<strong>group :development, :test do<\/strong>&quot;<\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngroup :development, :test do\r\n  # Call 'byebug' anywhere in the code to stop execution and get a debugger console\r\n  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]\r\n  gem 'sqlite3'\r\nend\r\n<\/pre>\n<p>\u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u0431\u043b\u043e\u043a\u043e\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u043d\u043e\u0432\u044b\u0439 \u0431\u043b\u043e\u043a:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngroup :production do\r\n  gem 'pg'\r\nend\r\n<\/pre>\n<p>\u0421\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u043c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u0444\u0430\u0439\u043b\u0435<\/p>\n<p>\u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c \u0443 \u0441\u0435\u0431\u044f \u0431\u0435\u0437 <strong>postgres<\/strong><\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nbundle install --without production\r\n<\/pre>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b\u044b, \u0434\u0435\u043b\u0430\u0435\u043c \u043a\u043e\u043c\u043c\u0438\u0442 \u0438 \u043f\u0443\u0448\u0430\u0435\u043c \u0432 <strong>Heroku<\/strong>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngit add .\r\ngit commit -am &quot;Heroku&quot;\r\ngit push heroku master\r\n<\/pre>\n<p>\u041f\u0440\u043e\u0432\u0435\u0440\u0438\u043c:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nheroku open\r\n<\/pre>\n<p>\u0412 \u043e\u0442\u0432\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u043c <strong>URL<\/strong>, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043c\u043e\u0436\u0435\u043c \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0430 <strong>Heroku<\/strong>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u043c RVM \u041f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u043c \u043d\u0430 \u0441\u0430\u0439\u0442 rvm.io \u0438 \u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438: \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0443: rvm:x:1001:ubuntu \u0418\u043c\u044f \u043c\u043e\u0435\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 &#8212; ubuntu &nbsp; \u0417\u0430\u0442\u0435\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[2],"tags":[90,127,129,60,128],"_links":{"self":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/486"}],"collection":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=486"}],"version-history":[{"count":12,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/486\/revisions"}],"predecessor-version":[{"id":501,"href":"https:\/\/artem.services\/index.php?rest_route=\/wp\/v2\/posts\/486\/revisions\/501"}],"wp:attachment":[{"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=486"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=486"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/artem.services\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=486"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}