2017-10-04 1 views
0

Je suis un débutant qui essaie d'apprendre rubis sur rails en suivant la série vidéo Lynda en utilisant ROR version 5.0 et mysql 8.02. après avoir créé mes entrées de table dans le fichier DB> migrate> model.rb et en exécutant "rails db: migrate", j'obtiens une erreur dans le terminal qui n'a pas beaucoup de sens. iv en utilisant un utilisateur différent et le rayer des privilèges mysql et la recherche sur le web, mais pas de chance.ActiveRecord :: StatementInvalid: Mysql2 :: Erreur: Collation inconnue: 'utf8_0900_ai_ci'

=============================

CreateUsers classe < ActiveRecord :: Migration [5.0]

def up create_table: les utilisateurs le font | t |

t.column "first_name", :string, :limit => 25 
    t.string "last_name", :limit => 50 
    t.string "email", :default => '', :null => false 
    t.string "password", :limit => 40 

    t.timestamps 
end 

fin

def vers le bas

drop_table :users 

fin

fin

MBP: simple_cms rails $ db: migrate rails avortés! ActiveRecord :: StatementInvalid: mysql2 :: Erreur: collation inconnue: 'utf8_0900_ai_ci': CREATE TABLE schema_migrations (version varchar (255) COLLATE utf8_0900_ai_ci clé primaire) MOTEUR = InnoDB /Users/.rvm/gems/ruby-2.3.0/ gems/mysql2-0.4.9/lib/mysql2/client.rb: 120: dans _query' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:120:in bloc dans la requête ' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2 /client.rb:119:in handle_interrupt' /Users/.rvm/gems/ruby-2.3.0/gems/mysql2-0.4.9/lib/mysql2/client.rb:119:in query ' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:218:in block in execute' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:590:in bloquer dans log ' /Users/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.6/lib/active_support/notifications/instrumenter.rb:21:in instrument' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_adapter.rb:583:in log' /Users/.rvm/gems/ ruby-2.3.0/gems/activerecord-5 .0.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb: 218: dans execute' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/mysql/database_statements.rb:31:in exécutez ' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/ schema_statements.rb: 278: en create_table' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract_mysql_adapter.rb:423:in create_table ' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/schema_migration.rb:27:in create_table' /Users/.rvm/gems/ruby-2.3.0/gems/activerecord-5.0.6/lib/active_record/connection_adapters/abstract/schema_statements.rb:1008:in initialize_schema_migrations_table'

+0

*** ce qui n'a pas beaucoup de sens pour moi. iv a utilisé un utilisateur mysql différent et lui a accordé des privilèges mysql et une recherche sur le web mais pas de chance. –

+0

Pourriez-vous s'il vous plaît coller la sortie de 'show variables comme 'collation_database';' – bitsapien

+0

merci pour la réponse .... où est-ce que je trouverais cela? dans mysql ou terminal de ligne de commande? –

Répondre

0

Il y avait un problème lié à votre problème: https://github.com/rails/rails/issues/28730

Ceci a été corrigé dans rails v5.1.0.rc2. Mettre à jour vers la dernière version et régénérer schema.rb devrait éliminer votre problème.

+0

ma version de rails est Rails 5.0.6 et j'ai essayé d'utiliser "rails de mise à jour bundle" mais ne mettra pas à jour à 5.1 j'ai également essayé gem 'rails', '~> 5.1' mais revient avec une erreur ... .. n'est pas mise à jour des rails à de nouvelles versions suppose d'être facile? –

+0

Une mise à jour groupée ne fera que pousser votre version mineure au plus tard. Je suggère que vous changiez d'abord la version dans Gemfile en 'gem 'rails', '~> 5.1'', et que vous exécutiez' bundle update rails'. Vous n'obtiendrez pas d'erreurs alors. – bitsapien

+0

merci qui l'a réparé! Je peux voir mes tables maintenant dans mysql votre homme bitsapien. –