Forum: Ruby on Rails database.yml and .gitignore

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
jgoggles (Guest)
on 2008-12-11 18:30
(Received via mailing list)
Hi,

For some reason git is not ignoring my database.yml file even though I
have config/database.yml in my .gitignore file.  Any suggestions as to
what the problem might be and/or how I can fix it?  It's causing major
annoyances.  Is there a way to remove the database.yml from the repo
entirely?

Thanks!
13df438de19ca028b7aaf2bf5658dcdf?d=identicon&s=25 Jeff C. (jeff)
on 2008-12-11 20:32
(Received via mailing list)
On Dec 11, 11:29 am, jgoggles <daniel.wea...@gmail.com> wrote:
> Hi,
>
> For some reason git is not ignoring my database.yml file even though I
> have config/database.yml in my .gitignore file.  Any suggestions as to
> what the problem might be and/or how I can fix it?  It's causing major
> annoyances.  Is there a way to remove the database.yml from the repo
> entirely?
>
> Thanks!

If it got added to your git repo before you specified it in the ignore
file, I think you have to remove it:

git rm config/database.yml
git commit -a -m "Removed database.yml"

(maybe save a backup of your database.yml first :-)

Jeff
F43889f0b3a9fbb7157ba9233bddd0ce?d=identicon&s=25 Robert W. (robert4723)
on 2008-12-11 21:09
> If it got added to your git repo before you specified it in the ignore
> file, I think you have to remove it:
>
> git rm config/database.yml
> git commit -a -m "Removed database.yml"
>
> (maybe save a backup of your database.yml first :-)
>
> Jeff
What I do is rename database.yml to example_database.yml before the
initial commit to git (and have config/database.yml in .gitignore. Then
after the initial commit I copy example_database.yml back to
database.yml, which will not be ignored.

Git will only ignore untracked files that are in .gitignore. If you are
tracking changes to a file the .gitignore has no effect.

The reason I keep example_database.yml in Git is so that when the
repository is cloned all I have to do is copy example_database.yml to
database.yml and I'm ready to go in the clone.

Note: this way each developer can keep their database password in their
own untracked copy of database.yml if a password is required. But, they
won't have to recreate database.yml from scratch.
F43889f0b3a9fbb7157ba9233bddd0ce?d=identicon&s=25 Robert W. (robert4723)
on 2008-12-11 21:14
Oh! In fact I don't actually do any of that manually, but instead I use
a simple Ruby script that I wrote (before discovering there are probably
better ways to this, and now Rails Edge has a really cool new template
system for doing this sort of thing).

If interested you can find the script here...
http://github.com/robertwalker/git-a-rails-project/tree

See the README for usage and options.
B2969ce4f044f9f0a2f056d7264f68a7?d=identicon&s=25 James B. (byrnejb)
on 2008-12-11 22:12
Jeff Cohen wrote:

>
> If it got added to your git repo before you specified it in the ignore
> file, I think you have to remove it:
>
> git rm config/database.yml
> git commit -a -m "Removed database.yml"
>
> (maybe save a backup of your database.yml first :-)
>
> Jeff

Safer I think to:

# git status
# git rm config/database.yml --cache

 --cache should leave the actual file alone and just remove it from
tracking> Backups are always a good thing though.
3e17ffcc38d3861c4c43c15fcf9590b9?d=identicon&s=25 Dan W. (jgoggles)
on 2008-12-19 23:50
(Received via mailing list)
Very helpful.  Thanks guys!

On Dec 11, 2:12 pm, James Byrne <rails-mailing-l...@andreas-s.net>
Faa5e8aebe848a1393e8392cdaea8566?d=identicon&s=25 Joshua M. (josh)
on 2012-06-07 13:23
> # git status
> # git rm config/database.yml --cache

Notice: it's --cached, not --cache.
This topic is locked and can not be replied to.