title: Mysql2::Error: Table 'table_name' doesn't exist: SHOW FULL FIELDS FROM `table_name`
body: <p>I am using rails 5.1.1 and mysql 5.7. I have a migration class:</p>
  
  <pre><code>class CreateCompanies &lt; ActiveRecord::Migration[5.1]
    def change
      create_table :companies do |t|
      t.string :ragione_sociale
      t.references :forma_giuridica, foreign_key: true
      t.string :telefono_fisso
      t.string :fax
      t.string :pec
      t.string :mail
      t.string :web_site
      t.string :cellulare_emergenze
      t.string :via_legale
      t.string :n_civico_legale
      t.string :citta_legale
      t.string :cap_legale
      t.string :provincia_legale
      t.string :regione_legale
      t.string :via_operativa
      t.string :n_civico_operativa
      t.string :citta_operativa
      t.string :cap_operativa
      t.string :provincia_operativa
      t.string :regione_operativa
      t.string :pi
      t.string :cf
      t.string :ateco_primo
      t.string :ateco_secondo
      t.string :ateco_altro
      t.timestamps
      end
    end
  end
  </code></pre>
  
  <p>I have an empty model <code>calledny.rb</code>and a controller called <code>companies_controller.rb</code>.</p>
  
  <p>My <code>database.yml</code> is:</p>
  
  <pre><code># MySQL. Versions 5.1.10 and up are supported.
  #
  # Install the MySQL driver
  #   gem install mysql2
  #
  # Ensure the MySQL gem is defined in your Gemfile
  #   gem 'mysql2'
  #
  # And be sure to use new-style password hashing:
  #   http://dev.mysql.com/doc/refman/5.7/en/old-client.html
  #
  default: &amp;default
    adapter: mysql2
    encoding: utf8
    pool: &lt;%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %&gt;
    username: root
    password: Pipipopo09
    host: localhost
    port: 3300
  
  development:
    &lt;&lt;: *default
    database: Pluto_Demetra_development
  
  # Warning: The database defined as "test" will be erased and
  # re-generated from your development database when you run "rake".
  # Do not set this db to the same as development or production.
  test:
    &lt;&lt;: *default
    database: Pluto_Demetra_test
  
  # As with config/secrets.yml, you never want to store sensitive information,
  # like your database password, in your source code. If your source code is
  # ever seen by anyone, they now have access to your database.
  #
  # Instead, provide the password as a unix environment variable when you boot
  # the app. Read http://guides.rubyonrails.org/configuring.html#configuring-a-database
  # for a full rundown on how to provide these environment variables in a
  # production deployment.
  #
  # On Heroku and other platform providers, you may have a full connection URL
  # available as an environment variable. For example:
  #
  #   DATABASE_URL="mysql2://myuser:mypass@localhost/somedatabase"
  #
  # You can use this database configuration with:
  #
  #   production:
  #     url: &lt;%= ENV['DATABASE_URL'] %&gt;
  #
  production:
    &lt;&lt;: *default
    database: Pluto_Demetra_production
    username: Pluto_Demetra
    password: &lt;%= ENV['PLUTO_DEMETRA_DATABASE_PASSWORD'] %&gt;
  </code></pre>
  
  <p>When run <code>rails db:migrate</code> I have the following error:</p>
  
  <pre><code>== 20170621125622 CreateCompanies: migrating ==================================
  -- create_table(:companies)
  rails aborted!
  StandardError: An error has occurred, all later migrations canceled:
  
  Mysql2::Error: Table 'pluto_demetra_development.companies' doesn't exist: SHOW FULL FIELDS FROM `companies`
  C:/Users/gvieri.BSNSTRATEGIES/SitiRuby/Pluto_Demetra/db/migrate/20170621125622_create_companies.rb:3:in `change'
  bin/rails:4:in `require'
  bin/rails:4:in `&lt;main&gt;'
  ActiveRecord::StatementInvalid: Mysql2::Error: Table 'pluto_demetra_development.companies' doesn't exist: SHOW FULL FIELDS FROM `companies`
  C:/Users/gvieri.BSNSTRATEGIES/SitiRuby/Pluto_Demetra/db/migrate/20170621125622_create_companies.rb:3:in `change'
  bin/rails:4:in `require'
  bin/rails:4:in `&lt;main&gt;'
  Mysql2::Error: Table 'pluto_demetra_development.companies' doesn't exist
  C:/Users/gvieri.BSNSTRATEGIES/SitiRuby/Pluto_Demetra/db/migrate/20170621125622_create_companies.rb:3:in `change'
  bin/rails:4:in `require'
  bin/rails:4:in `&lt;main&gt;'
  Mysql2::Error: Cannot add foreign key constraint
  C:/Users/gvieri.BSNSTRATEGIES/SitiRuby/Pluto_Demetra/db/migrate/20170621125622_create_companies.rb:3:in `change'
  bin/rails:4:in `require'
  bin/rails:4:in `&lt;main&gt;'
  Tasks: TOP =&gt; db:migrate
  (See full trace by running task with --trace)
  </code></pre>
  
  <p>How can I fix this error?</p>