On Thu, May 5, 2011 at 6:45 AM, jcwoods <[email protected]> wrote:

> I am in the process of packaging a rails application as an RPM, and I
> have a few questions regarding the initialization of the database
> environment.
>
> As part of the post-install script, I need to check to see if the
> database exists.  Depending on the outcome, I may have to run various
> combinations of db:setup, db:migrate, and/or db:seed.  Is there a rake
> (or some other) task I can run to check for the existence of the
> "production" database?  If not, is there a "standard" way to fetch the
> database name for the production environment from the database.yml
> file so I can use external tools?
>
> What I'm thinking about doing is defining the default user, password,
> and database name as macros/constants in my .spec file.  When I build
> my RPM, I will use sed to generate database.yml with these pre-defined
> values so they are consistent between my initialization scripts (in
> the spec file) and the database configuration included in the
> package.  This would work perfectly with a new installation.
>
> The problem with this approach is with upgrading an existing
> installation.  Since database.yml is a configuration file, I have to
> assume that the database.yml file has been modified and that my
> "defaults" no longer match the production values.  I need a simple way
> to ask rails "does my production database exist?".
>

If you're rails environment variable is set to production
(RAILS_ENV=production) then you can run db:create followed by db:migrate. If
the db already exists then db:create will do nothing. If the migration is up
to date then db:migrate will do nothing.

B.

>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to