J'ai un projet qui utilise actuellement des versions plus anciennes de l'environnement Ruby on Rails et utilise la base de données PostgreSQL. Les versions sont (oui, je sais ... ne riez pas, je dois soutenir cette ancienne version pour l'instant):rake db: schéma: vidage produit un schéma vide
ruby 1.8.7
rails 2.3.11
rake 10.5.0
psql 9.5.7
S'il importe, tout cela est installé sur un système Ubuntu 16.04. Tout fonctionnait sur un système plus ancien que j'avais, qui est finalement mort. J'ai donc mis en place rvm
et ces versions de l'outil de développement sur la nouvelle machine et copiées sur la base de données.
Sur la nouvelle machine, tout semble fonctionner correctement excepté quelques tâches de base de données de rake que j'ai essayées. Si je lance, par exemple, rake db:schema:dump
, je reçois pas de sortie d'erreur, et je reçois un fichier db/schema.rb
avec le contenu suivant:
# This file is auto-generated from the current state of the database. Instead of editing this file,
# please use the migrations feature of Active Record to incrementally modify your database, and
# then regenerate this schema definition.
#
# Note that this schema.rb definition is the authoritative source for your database schema. If you need
# to create the application database on another system, you should be using db:schema:load, not running
# all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
# you'll amass, the slower it'll run and the greater likelihood for issues).
#
# It's strongly recommended to check this file into your version control system.
ActiveRecord::Schema.define(:version => 0) do
end
J'ai essayé de courir rake db:structure:dump
et eu une erreur:
/usr/lib/postgresql/9.5/bin/pg_dump: invalid option -- 'i'
Try "pg_dump --help" for more information.
rake aborted!
Error dumping database
/home/mark/.rvm/gems/[email protected]/gems/rails-2.3.11/lib/tasks/databases.rake:287
/home/mark/.rvm/gems/[email protected]/bin/ruby_executable_hooks:15
Tasks: TOP => db:structure:dump
(See full trace by running task with --trace)
Ma principale préoccupation est le manque de capacité à vider le schéma. Je ne comprends pas comment il fonctionne sans erreur, mais ne génère aucun schéma. Comme je l'ai mentionné au début, l'application fonctionne bien via script/server
. J'ai également couru ActiveRecord::SchemaDumper.dump
de la console avec exactement le même résultat (ce que je suppose devrait être attendu, puisque c'est ce que la tâche de rake fonctionne probablement). Mais à partir de la console, je peux examiner n'importe lequel des modèles et des données. Tout est là.
Vous ne savez pas pourquoi le fichier de schéma est vide? J'espère que quelqu'un a déjà vu ce phénomène. J'ai fait beaucoup de recherche de modes de défaillance de rake db:schema:dump
et je n'ai pas trouvé ce symptôme particulier mentionné nulle part.
Cela peut expliquer l'option invalide 'i', mais je ne suis pas sûr qu'il explique le schéma vide, qui est le plus gros problème. J'ai un ami qui travaille avec moi sur le même projet et il gère Postgresql 9.1.20. – lurker