Cuando intento ejecutar el siguiente código en Rails usando Mysql2 como administrador de base de datos:

rake db:migrate

Obtengo el siguiente error:

 rake aborted!
 "Mysql2::Error: All parts of a PRIMARY KEY must be NOT NULL:"

¿Por qué me sale este error, si la clave principal de una tabla por defecto NO es «null»?

Código de migración, sin embargo :

class CreateUsers < ActiveRecord::Migration
   def change
    create_table :users do |t|
     t.string "first_name"
     t.timestamps
    end
   end 
end
  • Por favor enviar el código de la migración. Suena como que usted tal vez ha compuesto PK permite valores nulos.
  • Yo no, porque yo no veo nada raro allí. Sin embargo, lo añado a la pregunta
  • ¿Cuál es tu versión de MySQL. Parece un muy reciente versión de conflictos con una más vieja versión de Rails: github.com/rails/rails/pull/13247 se Puede actualizar Carriles?
  • Tengo la última versión de Ruby (2.0.0p53), Rieles (4.0.2) y tengo la versión del servidor MySQL 5.7 todos los de 32 bits.
  • Muchas gracias por lo de Señor Berkowski! Me rebajó servidor MySQL desde 5.7 5.6 y se solucionó el problema!

3 Comentarios

  1. 84

    Yo tenía el mismo problema antes, y he resuelto de acuerdo a aquí
    https://github.com/rails/rails/pull/13247#issuecomment-32425844

    Con Rails 2.3.5, versión de MySQL 5.7.9 y mysql joya que usted necesita para tener
    este bit como un inicializador en
    config/inicializadores/abstract_mysql_adapter.rb:

    class ActiveRecord::ConnectionAdapters::MysqlAdapter
      NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
    end

    Para mysql2, se debe config/inicializadores/abstract_mysql2_adapter.rb:

    class ActiveRecord::ConnectionAdapters::Mysql2Adapter
      NATIVE_DATABASE_TYPES[:primary_key] = "int(11) auto_increment PRIMARY KEY"
    end
    • Gracias amigo.. 🙂
  2. 29

    De mysql 5.7 cambio de hora página:

    Columnas en una CLAVE PRINCIPAL debe ser NO NULO, pero si se declara explícitamente
    como NULL producido ningún error. Ahora se produce un error. Por ejemplo, un
    declaración como CREATE TABLE t (i INT NULL PRIMARY KEY) es rechazada.
    Lo mismo ocurre para similar las instrucciones ALTER TABLE. (Bug #13995622,
    Error #66987, El Bug #15967545, El Bug #16545198)

    Cambios en MySQL 5.7.3 (2013-12-03, el Hito 13)

    Este problema se fija hace 3 meses. No sé qué versión de Rails que va a ser parte de

    mono parche es aquí

    EDICIÓN:
    Hace más de un año que esta revisión se fusionó con el maestro. Así pues, debe ser parte de la última versión de Rails.

    EDICIÓN:
    De hecho, la confirmación de que las correcciones de esto se puede encontrar en: https://github.com/yahonda/rails/commit/b6655885ef13cf8d1705dc9b5232846f0207febd , y muestra que la revisión se incluye en v4.2.0.beta1, v4.1.6.rc1, v4.1.5, v4.1.4, v4.1.3, v4.1.2, v4.1.2.rc3, v4.1.2.rc2, v4.1.2.rc1, v4.1.1, v4.1.0, v4.1.0.rc2, v4.1.0.rc1, v4.1.0.beta2, v4.1.0.beta1. Si va a actualizar al menos a v4.1.0 es una opción para usted, a continuación, se debe solucionar el problema.

  3. 2

    Tuve este problema ejecutando rails 4.0.x aplicación usando mysql 5.7.x. Yo era capaz de solucionarlo por medio de la actualización de rails 4.2.x y actualización de mis joyas.

    (Estoy seguro de que estos gemfiles necesidad de trabajo, pero espero que todavía son útiles)

    De Edad Gemfile

    source 'https://rubygems.org'
    ruby '2.0.0'
    # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
    gem 'rails', '4.0.13'
    gem 'mysql2'
    # Use unicorn as the app server
    # gem 'unicorn'
    gem 'sidekiq'
    gem 'sinatra'
    gem 'whenever'
    gem 'thin'
    gem 'faye'
    gem 'faye-websocket'
    #pdf generation
    gem 'wicked_pdf'
    gem 'wkhtmltopdf-binary'
    # Assets
    gem 'backbone-on-rails', '~> 0.9.9'
    gem 'coffee-rails', '~> 4.0.1'
    gem 'coffee-script-source', '=1.8.0'
    gem 'ejs'                                   # uses templates for backbone
    gem 'jquery-rails'
    gem 'jquery-ui-rails'
    gem 'neat'
    gem 'sass-rails', '~> 4.0.3'
    gem 'therubyracer'
    gem 'turbolinks'
    gem 'uglifier', '>= 1.3.0'
    gem 'active_model_serializers', '0.8.3'
    gem 'acts_as_list'
    gem 'bcrypt-ruby', '~> 3.1.2'
    gem 'bootstrap-sass', '~> 3.2.0.0'
    gem 'bower-rails'
    gem 'carrierwave'
    gem 'enumerize'
    gem 'embedly'                         # Url to Attachment Processing
    gem 'fancybox2-rails', '~> 0.2.4'
    gem 'flamegraph'
    gem 'fog'                     # s3 storage
    gem 'globalize'   # I18n for tagging, etc.
    gem 'globalize-accessors'
    gem 'i18n-tasks', '~> 0.8.3'
    gem 'hirb'
    gem 'kaminari'
    gem 'nokogiri'
    gem 'newrelic_rpm'
    gem 'select2-rails'                   # Token Fields
    gem 'twilio-ruby'
    gem 'rails_autolink'                  # Convert urls to links
    gem 'redis', '3.2.1'
    gem 'rest-client'
    gem 'rmagick'
    gem 'rubyzip', :require => 'zip'        # Zip files together
    gem 'unf'
    gem 'mailgun-ruby', '~>1.0.3', require: 'mailgun'
    # Deployments
    gem 'mina'
    group :doc do
    gem 'sdoc'
    end
    group :test do
    gem 'rspec-rails', "= 2.14.2"
    gem 'shoulda-matchers', :require => false
    gem 'simplecov', '~> 0.9.2'
    gem 'database_cleaner'
    gem 'codeclimate-test-reporter', require: nil
    end
    group :development, :test do
    gem 'quiet_assets'
    gem 'factory_girl_rails', "~> 4.0"
    gem 'guard', '>=2.1.0'
    gem 'guard-rspec', '= 4.2.9'
    gem 'spring', '1.3.6'
    gem 'spring-commands-rspec'
    gem 'foreman'
    end

    Nueva Gemfile

    source 'https://rubygems.org'
    ruby '2.3.0'
    # Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
    gem 'rails', '4.2.5'
    gem 'mysql2'
    gem 'stackprof'
    # Use unicorn as the app server
    # gem 'unicorn'
    gem 'sidekiq'
    gem 'sinatra'
    gem 'whenever'
    gem 'thin'
    gem 'faye'
    gem 'faye-websocket'
    #pdf generation
    gem 'wicked_pdf'
    gem 'wkhtmltopdf-binary'
    # Assets
    gem 'backbone-on-rails', '~> 0.9.9'
    gem 'coffee-rails', '~> 4.0.1'
    gem 'coffee-script-source', '=1.8.0'
    gem 'ejs'                                   # uses templates for backbone
    gem 'jquery-rails'
    gem 'jquery-ui-rails'
    gem 'neat'
    gem 'sass-rails', '~> 4.0.3'
    gem 'therubyracer'
    gem 'turbolinks'
    gem 'uglifier', '>= 1.3.0'
    gem 'active_model_serializers', '0.8.3'
    gem 'acts_as_list'
    gem 'bcrypt', '~> 3.1.2'
    gem 'bootstrap-sass', '~> 3.2.0.0'
    gem 'bower-rails'
    gem 'carrierwave'
    gem 'enumerize'
    gem 'embedly'                         # Url to Attachment Processing
    gem 'fancybox2-rails', '~> 0.2.4'
    gem 'flamegraph'
    gem 'fog'                     # s3 storage
    gem 'globalize'   # I18n for tagging, etc.
    gem 'globalize-accessors'
    gem 'i18n-tasks', '~> 0.8.3'
    gem 'hirb'
    gem 'kaminari'
    gem 'nokogiri'
    gem 'newrelic_rpm'
    gem 'select2-rails'                   # Token Fields
    gem 'twilio-ruby'
    gem 'rails_autolink'                  # Convert urls to links
    gem 'redis', '3.2.1'
    gem 'rest-client'
    gem 'rmagick'
    gem 'rubyzip', :require => 'zip'        # Zip files together
    gem 'unf'
    gem 'mailgun-ruby', '~>1.0.3', require: 'mailgun'
    gem 'rack-cors', :require => 'rack/cors'
    # Deployments
    gem 'mina'
    group :doc do
    gem 'sdoc'
    end
    group :test do
    gem 'rspec-rails', "= 2.14.2"
    gem 'shoulda-matchers', :require => false
    gem 'simplecov', '~> 0.9.2'
    gem 'database_cleaner'
    gem 'codeclimate-test-reporter', require: nil
    end
    group :development, :test do
    gem 'quiet_assets'
    gem 'factory_girl_rails', "~> 4.0"
    gem 'guard', '>=2.1.0'
    gem 'guard-rspec', '= 4.2.9'
    gem 'spring', '1.6.1'
    gem 'spring-commands-rspec'
    gem 'foreman'
    end

Dejar respuesta

Please enter your comment!
Please enter your name here