Fork me on GitHub

Sauvegarder une base de donnée PostgreSQL chez Heroku

Heroku permet de faire très simplement des sauvegardes des bases de données de production en utilisant le module PGBackups.

Il faut d’abord installer le module soit via l’IHM web , soit via la commande ((dans le répertoire de l’application)

heroku addons:add pgbackups

Puis simplement lancer une sauvegarde

heroku pgbackups:capture

Une petite vérification s’impose:

heroku pgbackups

qui renvoie normalement

D   | Backup Time         | Size   | Database
-----+---------------------+--------+----------------
b001 | 2011/08/18 11:08.22 | 39.2KB | SHARED_DATABASE
b002 | 2011/09/19 10:24.04 | 40.2KB | SHARED_DATABASE

Et finalement pour restaurer (avec b001 la base)

heroku pgbackups:restore DATABASE b001

Rappelez vous que la sauvegarde reste l’un des meilleurs moyens de sécuriser vos données… Soyez le premier à commenter

MacVim, Command-T et RVM

MacVim (une forme de l’éditeur VIM adaptée à MacOS) est mon éditeur de prédilection actuellement malgré de nombreux autres essais (entre autres: Textmate, Kod, Sublime Text).

Il est très configurable et permet de rajouter de nombreuses fonctionnalités utiles: ici je vous parlerai du module Command-T qui permet de faire des recherches très fines et surtout pertinentes à travers les répertoires et fichiers d’un projet – un screencast est disponible sur le site de l’auteur.

Pour l’installer sur un mac avec RVM, il faut être vigilant sur la version de Ruby employée car MacVim ne compilant pas avec ruby 1.9.

Installation de MacVim via homebrew avec ruby 1.8.7:

rvm use system
/usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
brew install wget macvim

Installation de CommandT à partir de vim.org:

wget http://www.vim.org/scripts/download_script.php?src_id=15560
mvim command-t-1.2.1.vba

Puis une fois MacVim ouvert:

:so %

En sortant de MacVim:

cd /$HOME/.vim/ruby/command-t
ruby extconf.rb
make

Et voilà normalement tout fonctionne, vous pouvez utiliser la version de ruby que vous souhaitez sans problème.

Soyez le premier à commenter

coding in the cloud

New and hot: editing source file directly with your browser is now possible on Github, thanks to the Ace editor (used on Cloud9ide) !

 

 

 

Soyez le premier à commenter

Haml on Rails

Pour utiliser haml avec Ruby on Rails 3.x, il suffit d’ajouter dans le fichier GemFile

gem 'haml-rails'

puis lancer la commande bundle install

et finalement ajouter

config.generators do |g|
  g.template_engine :haml
end

dans le fichier config/application.rb (dans la classe « Application < Rails::Application ») – chaque scaffold sera automatiquement en Haml

 

Soyez le premier à commenter

Node.js/Express sur heroku

Je suis en train de tester node.js ces derniers jours, et notamment le framework web Express – Fan de l’hébergeur Heroku, d’autant plus depuis qu’il est possible d’avoir des applications node.js (entre autres), j’ai souhaité installer une application de test en suivant ce tutorial – et tout n’a pas fonctionné du premier coup :(

En effet, pour créer mon squelette d’application « zen-hw », j’ai utilisé la commande

[julien.newton: zen-hw]$ express

qui crée par défaut une arborescence d’application Express – or par défaut le fichier app.js lancera la webapp via la commande

app.listen(3000);

qui fonctionne parfaitement en local (sauf si pow est installé, mais c’est une autre histoire) mais pas sur heroku, avec un beau crash de l’application visible via:

[julien.newton: zen-hw]$ heroku ps
Process       State               Command
------------  ------------------  ------------------------------
web.1         crashed for 8s      node app.js

Pour éviter ce point, il suffit de modifier app.js pour chaque application Express créée via la commande express pour utiliser process.env.PORT, ce qui donne à la fin du fichier:

var port = process.env.PORT || 3210;
app.listen(port, function(){
  console.log("Listening on " + port);
});

et voilà l’application fonctionne sous heroku !

Soyez le premier à commenter
©2008-2011 Julien Raigneau - Tous droits réservés.