2016-10-07 2 views
1

Я посеял базу данных postgres разработки с несколькими тысячами записей от Faker, когда у меня возникла проблема с файлом семени. Я прервал операцию семени и откинул вставки и зафиксировал файл seeds.rb.rake db tasks running running

Когда я снова запустил его, каждая задача rake db:* выполняется дважды. Я могу запустить rake routes только штраф, но если я бегу rake db:drop я получаю что-то вроде этого:

$ rake db:drop 
Dropped database 'vp_development' 
Dropped database 'vp_development' 

Если я пытаюсь запустить миграцию все это взрывается, когда он пытается применить индексы, так как он уже создал эти столбцы.

У меня есть только один Rakefile по умолчанию и никаких пользовательских файлов rake в lib или где-либо еще.

Окружающая среда - это рельсы 5.0.0.1 и ruby ​​2.2.2, если это имеет значение. Я так потерялся за это прямо сейчас.

Вот мой Rakefile

# Add your own tasks in files placed in lib/tasks ending in .rake, 
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake. 

require_relative 'config/application' 

Rails.application.load_tas 

Я видел другие темы, предполагающие это может быть проблема с драгоценным камнем, но я не добавил новый драгоценный камень в течение нескольких дней, когда эта проблема началась , В любом случае, это gemfile.

source 'https://rubygems.org' 


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails' 
gem 'rails', '~> 5.0.0', '>= 5.0.0.1' 
gem 'puma', '~> 3.0' 
gem 'sass-rails', '~> 5.0' 
gem 'uglifier', '>= 1.3.0' 
gem 'coffee-rails', '~> 4.2' 
gem 'jquery-rails' 
gem 'turbolinks', '~> 5' 
gem 'jbuilder', '~> 2.5' 
gem 'devise' 
gem 'bootstrap-sass', '3.3.6' 
gem 'pg' 
gem 'friendly_id' 
gem 'will_paginate' 
gem 'faker' 

group :development, :test do 
    #gem 'sqlite3' 
    gem 'byebug', platform: :mri 
end 

group :development do 
    gem 'web-console' 
    gem 'listen', '~> 3.0.5' 
    gem 'spring' 
    gem 'spring-watcher-listen', '~> 2.0.0' 
end 

group :production do 
end 

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem 
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby] 

Edit: Я также попробовал пользовательскую задачу в пространстве имен БД и она отлично работает. Выполняется только один раз. Из того, что я могу сказать, db: drop, db: create, db: reset, db: migrate - это единственные задачи, выполняемые дважды. Вот следа на db:drop и другая на db:create.

$ rake db:drop --trace 
** Invoke db:drop (first_time) 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Invoke db:check_protected_environments (first_time) 
** Invoke environment (first_time) 
** Execute environment 
** Invoke db:load_config 
** Execute db:check_protected_environments 
** Execute db:drop 
** Invoke db:drop:_unsafe (first_time) 
** Invoke db:load_config 
** Execute db:drop:_unsafe 
Dropped database 'vp_development' 
Dropped database 'vp_development' 

rake db:create --trace 
** Invoke db:create (first_time) 
** Invoke db:load_config (first_time) 
** Execute db:load_config 
** Execute db:create 
Created database 'vp_development' 
Database 'vp_development' already exists 
+0

http://stackoverflow.com/questions/35875661/rake-task-executing-twice-when-only-called-once помогает ли это? – Doon

+0

На самом деле я прошел через этот, но я попытался запустить свою задачу из Rakefile, и он отлично работает. Просто один прогон, так что это не может быть той же причиной, что и их. $ рейка Foo: бар RUNNING все еще работает $ рейка дб: бар RUNNING все еще работает – bubunt205

ответ

0

Я нашел преступника. Где-то за последние несколько git коммиты, моя database.yml была как-то дублирована.

Каждый раз, когда я пытался запустить любую команду rake, которая ссылалась на среду, она будет работать дважды. Такая странная проблема. Рад, что я смог ее решить.