J'ai commencé à utiliser Rails 2 en avril dernier mais je me suis arrêté en juin parce que je pensais que l'apprendre à la sortie de Rails 3 serait plus pratique car beaucoup de choses ont été complètement refactorisées et restructurées. Je travaillais avec Ubuntu 10.04 (avec SQLite3 comme db par défaut) mais maintenant j'utilise Windows 7 et MySQL 5. J'ai déjà installé l'adaptateur gem pour MySQL, mais pour l'utiliser, j'ai encore besoin de modifier database.yml. Merci.Comment définir MySQL comme base de données par défaut dans Rails 3?
Répondre
En termes de configuration de base de données, rien n'a vraiment changé entre Rails 2 et 3, à l'exception de la façon dont vous chargez votre pilote MySQL. Cela sert à faire dans config/environment.rb
mais se fait maintenant dans Gemfile
:
gem 'mysql'
Le fichier par défaut config/database.yml
est configuré avec SQLite, mais vous pouvez facilement changer ce sur être MySQL. Une version générique ressemble:
defaults: &defaults
adapter: mysql
username: localdev
password: mylocaldevpasswordwhateveritis
host: localhost
development:
<<: *defaults
database: project_dev
test:
<<: *defaults
database: project_test
Il est la ligne de déclaration adapter
qui définit pilote à utiliser.
Dans la réponse de tadman, utilisez gem 'mysql2' pour les rails 3 puisque les rails 3 utilisent maintenant le nouvel adaptateur mysql !!
Aussi, dans database.yml 'adaptateur: mysql' -> 'adaptateur: mysql2' –
Vous pouvez modifier les rails par défaut à MySql lorsque vous générez une nouvelle application, mais vous devez modifier une ligne dans l'installation de vos rails. Vous devrez faire le changement à chaque version, et chaque fois que vous mettez à jour la gemme de rails.
J'utilise Ruby-Enterprise. Alors, voici ce que je fais:
Dans le fichier (où 1.8 est la version rubis et 3.0.4 est la version Rails):
/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/railties-3.0.4/lib/rails/generators/rails/app/app_generator.rb
Edit: Rails-3.1.0-rc1 le fichier est:
gems/railties-3.1.0.rc1/lib/rails/generators/app_base.rb
Rechercher cette ligne:
class_option :database, :type => :string, :aliases => "-d", :default => "sqlite3",
Change "sqlite3" à "mysql".
class_option :database, :type => :string, :aliases => "-d", :default => "mysql",
Ainsi, au lieu de faire:
rails new application_name -d mysql
je peux faire (et le database.yml et Gemfiles sont configurés pour la gemme mysql2):
rails new application_name
Cela suppose que vous avez le bon mysql2 gem installé déjà. De plus, je ne fais que ça depuis que Rails 3 est sorti. C'est probablement similaire pour les versions précédentes. Encore une fois, chaque fois que vous mettez à jour Rails, vous devez trouver et modifier ce fichier.
J'utilise RVM avec Ruby 1.9.2 et Rails 3, et le chemin vers le fichier pour moi se trouve à: $ (rvm gemdir) /gems/railties-3.0.5/lib/rails/generators/rails/app/app_generator.rb. Les instructeurs fonctionnent parfaitement. – gunit888
Depuis Rails 3.2, vous pouvez définir un fichier .railsrc avec des options de ligne de commande personnalisée qui s'appliquera toujours rails new
Donc, si vous créez un fichier appelé .railsrc
et mettez-le dans votre répertoire w/le contenu comme cela va faire de mysql votre base de données par défaut. Vous pouvez mettre l'une des options de ligne de commande là (y compris application templates qui sont souper génial!
Exécutez rails new --help
depuis la ligne de commande pour voir toutes les options.
- 1. Comment définir l'encodage par défaut de la base de données?
- 2. Définir le lien comme actif par défaut
- 3. Comment définir une séquence comme valeur par défaut via pgAdmin?
- 4. Impossible de définir une URL comme valeur par défaut dans MySQL
- 5. Dans Rails/ActiveRecord 3, comment modifier le type de clé primaire par défaut pour MySQL?
- 6. Comment utiliser la clé i18n comme traduction par défaut dans Rails 3?
- 7. Pour définir une valeur par défaut pour une colonne dans une base de données par PostgreSQL
- 8. Comment puis-je changer la base de données par défaut utilisée dans Kohana 3?
- 9. Meilleure pratique pour charger les valeurs par défaut dans une base de données dans les rails
- 10. Comment définir une date-valeur par défaut Postgresql comme 'YYYYMM'?
- 11. Comment démarrer une application Rails 3 avec HAML et SASS comme modèles par défaut?
- 12. Comment puis-je définir le moteur de stockage par défaut utilisé par MySQL?
- 13. Définir une heure comme valeur par défaut dans gxt?
- 14. Données de base par défaut addXXObject
- 15. Mysql Constraign Entrées de base de données dans les rails
- 16. Dans SQLite, comment définir une colonne par défaut comme étant l'utilisateur actuel?
- 17. MySQL - Définir la valeur par défaut pour le champ comme une fonction de concaténation de chaînes
- 18. Données par défaut du stockage de base de données locale
- 19. mysql - puis-je définir la valeur par défaut de VARCHAR comme NULL?
- 20. définir une page par défaut dans les données dynamiques
- 21. Rails Migrations: Charger les données par défaut
- 22. Rails 3. Création d'une base de données de production
- 23. Comment définir un index de base de données dans HoboFields?
- 24. Le caractère Unicode d'une application rails apparaît comme ??? dans la base de données mysql,
- 25. Comment définir [ScaffoldColumn (false)] comme valeur par défaut pour les données dynamiques?
- 26. Mysql: Trier par comme?
- 27. Entity Framework Définir PreserveChanges comme valeur par défaut MergeOption
- 28. Comment définir une valeur par défaut has_one dans ActiveRecord?
- 29. LinqDataSource: Comment définir une valeur par défaut
- 30. Rails 3 - Comment construire une table de base de données avec beaucoup de données?
Existe-t-il un moyen de faire de mysql la valeur par défaut au lieu de sqlite? –
Pour les nouveaux projets? Pas facilement. Ceci est une caractéristique de base de Rails. Généralement, les gens préparent un projet «squelette» pour leurs nouvelles applications personnalisées selon les besoins, avec des pilotes de base de données, des plugins, des gemmes tous configurés comme vous les aimez, puis les clonent pour de nouveaux projets. De cette façon, vous pouvez avoir tous les défauts que vous aimez, peu importe comment exotique. – tadman
Merci. Donc je ne peux pas le faire par défaut pour de nouveaux projets. – arscariosus