Ruby on Rails Hosting.

Hey all,

I am currently doing my dissertation project and am extremely far in to the process and am ready to host it external of my university due to my university not having Ruby on Rails support on their servers.

I am wondering if anyone knows of any free hosting sites for ruby on rails that would be easy in use as this is my first time hosting a website and the first time I have ever worked with Rails.

I have no intention of starting the project again but just simply want to be able to upload my project to a site, free of charge in order for me to demonstrate it to the examiners at the end of March.

Any feed back would be great. Thanks.

Heroku.com is generally reckoned to be the best.

Colin

Heroku is the easiest to use and should be good for what you describe. However, you will want to make sure you research, in detail, the database situation. Heroku is now forcing the use of Postgres for “production” deployment, in certain situations. Since your app is probably using SQLite, you will want to try to deploy to Heroku on an older stack - one that allows the use of SQLite. Otherwise you will be doing some reconfigurations that will complicate your situation.

Has Heroku ever used anything but PostgreSQL? Have you ever had a DB-related issue deploying an app to Heroku that was being developed with a non-PG database? (Other than with DB-proprietary SQL, of course)

Just curious, I've never had (or heard of) such a problem; wondering if I've just been lucky :slight_smile:

Heroku is the easiest to use and should be good for what you describe. However, you will want to make sure you research, in detail, the database situation. Heroku is now forcing the use of Postgres for "production" deployment, in certain situations. Since your app is probably using SQLite, you will want to try to deploy to Heroku on an older stack - one that allows the use of SQLite. Otherwise you will be doing some reconfigurations that will complicate your situation.

I understood that sqlite is not suitable for production use anyway, so one should always use mysql or postgres for production.

Colin

I am currently using MySQL as my database, I am guessing I will have to re configure it all then?

No. Just sign up and deploy. If you have any problems, come back and start a new thread with the details :slight_smile:

I'm very new to ruby and rails and followed Michael Hartl's tutorial for Rails... it's a great starting point and covers deploying to heroku.

I'm using rails 3.1.0 and postgresql and didn't find it difficult at all to deploy on heroku.

Max

Most of my projects have been proof-of-concepts and/or MVP (minimal viable product) efforts that were never intended to run with thousands of users, so SQLite was fine for dev, test, AND production. Up through Rails 3.0 there was a Heroku stack (bamboo?) that allowed you to run SQLlite as production database (though postgres was highly recommended.)

As soon as I converted one of my projects to Rails 3.1 I had to use the latest Heroku stack, which outlaws SQLlite and forces postgress. I tried using SQLite for dev and postgres for production, but ran into a bunch of really weird issues (so Hassan you are lucky or I’m very unlucky, don’t know which.) Finally, following Heroku’s strongly worded warnings, I installed postgress on my Mac for dev and got it working with Ruby and Rails (not a trivial straightforward process for an amateur like myself.) I’m a couple of projects past all this, and postgres continues to introduce challenges and complexity at every turn. Oh how I long for SQLite in dev.

The original question in this thread indicated that the key goal was to get an older project up into a production environment with the minimal amount of effort/cost (performance appeared not to be a key concern.) Being able to avoid the complexities introduced with postgress will best meet that key requirement.

The latest Heroku stack requires postgres and will not allow SQLite at all ( I think it is called Cedars ) When you deploy, you will want to deploy on an older stack that allows SQLite. (I think Bamboo works with SQLite.) If you can deploy with SQLite, then you should not have any reconfigurations.

If you do end up having to deploy to postgres on Heroku you will have to make sure your Gemfile, database.yml, and possibly other files are adjusted to have SQLlite in the development environment and postgres in the production environment. At that point, you may find that your app performs differently in dev than production. If so, it is probably due to underlying nuances/differences in the two databases. Heroku STRONGLY recommends that you run postgres in your dev environment for just this reason.

At my current project, the other developer prefers mysql and uses only that,

I prefer postgresql and use it mostly (but sometimes I test on mysql). Already

on 2 occasions, I had tests fail, (on postgresql) that passed on mysql.

  1. we had an issue where a schema.db was incorrectly processed by

mysql upon rake test:prepare (this worked correctly in postgresql).

We switched to RAKE_ENV=test rake db:create/migrate/seed for

that reason

  1. postgresql checks more rigorously on certain cases of uniqueness

of the primary key (I think that was writing a rake db:seed with a fixed

low value id (16 actually) that was saved later on by the regular create

tests … mysql happily created a second a row with that id? postgresql

complained)

And this is just a fairly “simple” project smaller than 1 person year …

When you get to more complex projects, the number of issues will

certainly increase. What I generally do, is also test on mysql. In

general, I find keeping up multi-platform compatibility a good

measure to see if I keep to “standard/future proof” implementations

(unless I really need a specialized feature of postgresql).

So yes, I think it is relevant to do some regular development/testing

runs with exactly the same database version as in production (and

even within postgresql, versions can matter since certain not really

valid constructs get more rigorously tested and may throw an

exception with newer versions).

HTH,

Peter

i definitely had issues with trying to develop with sqllite and deploy on heroku (cedar stack) to postgresql. It ended up being imperative to install postgresql locally for the dev environment. as a newbie it was a bit daunting at first but i got through it without too much bloodshed and haven't had any problems since.

i also set up an alternate git remote so i can deploy to a staging version of my site to test things out before delivering to the live production server. that has been great as what works locally doesn't always work on heroku - especially if you're shaking on your CSS (which i am) as heroku is much more rigid about what it likes/thinks is valid.

Installing PG locally is anything but "daunting." With homebrew, it's nothing more than:

$ brew install postgresql

and you're laughing. No reason not to use it for dev work.