$ rake db: migrate Произошла ошибка, эта и все последующие миграции отменены - PullRequest
7 голосов
/ 21 декабря 2011

Я новичок в RoR и продолжаю получать это сообщение об ошибке:

$ rake db:migrate
==  CreateUsers: migrating ====================================================
-- create_table(:users)
rake aborted!
An error has occurred, this and all later migrations canceled:

SQLite3::SQLException: table "users" already exists: CREATE TABLE "users" ("id"
INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "email" varchar
(255), "created_at" datetime, "updated_at" datetime)

Tasks: TOP => db:migrate
(See full trace by running task with --trace)

Я искал решение в течение 3 дней, но, похоже, я не могу найти ничего подходящего для меня.

Заранее благодарю за помощь :) PS - Я запускаю Windows.

Ответы [ 5 ]

7 голосов
/ 20 марта 2014

Не уверен, что вы следуете учебнику Майкла Хартла по RoR.

Но кто-то сказал, что в шагах учебника есть проблема http://archive.railsforum.com/viewtopic.php?id=44944

rake db:drop:all <---------- <strong>сотрет все , затем снова запустите rake db:migrate, чтобы решить проблему.

Удачи

7 голосов
/ 21 декабря 2011

table "users" already exists похоже проблема. Вы пытались вручную удалить таблицу из вашей базы данных с помощью какого-либо средства администрирования SQLITE ?

Или вы можете включить таблицу удаления в ваш скрипт миграции (должен называться create_users.rb внутри вашей папки db / migrate). Внутри def up вставка drop_table :users:

      def up
         drop_table :users

         create_table :users do |t|
         t.string :name
         #...

         t.timestamps
      end

О, и я помню, что из моего времени RoR имя таблицы «Пользователи» может позже вызвать проблемы. Может быть, это связано.

1 голос
/ 05 декабря 2013

Поскольку таблица уже существует, вам необходимо удалить / удалить ее перед выполнением миграции.

Простой способ с графическим интерфейсом сделать это с помощью браузера баз данных SQLite (http://sourceforge.net/projects/sqlitebrowser/).

Нажмите кнопку со значком Table-X. Выберите User Table, нажмите Delete.

Затем запустите rake db:migrate

Bada Boom Bada Bing

0 голосов
/ 21 февраля 2019

У меня была та же проблема, и через несколько часов я наконец нашел решение

Я поставил def self.up

create_table: пользователи делают | t |

def down drop_down: пользователи заканчиваются end

Затем создайте rake db: migrate и Magic !!!!

0 голосов
/ 20 марта 2018

У меня была похожая проблема, тогда я сделал => rake db:drop => rake db:create => rake db:migrate

работал отлично.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...