Как Вы изменяете свои Данные Приложения для направляющих?

ngOnInit() {
    this.userTyping()
  }
  userTyping() {
    let searchTerm = this.form.get('query');
    searchTerm.valueChanges.pipe().debounceTime(1000)
      .subscribe(() => this.searchForUser());
  }
12
задан nitecoder 15 April 2009 в 04:26
поделиться

3 ответа

Одна из проблем возникает, если вы используете предоставленные

rake db:reset

и

rake db:schema:load

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

В Agile Web Development с Rails, третье издание , который вы должны получить (если книга по Ruby - это книга «Кирка», должна ли это быть Книга «Гамак», кстати?), Если вы еще этого не сделали, DHH говорит:

... миграция на самом деле не предназначена для нести начальные данные. Они слишком временны в природе делать это надежно. Миграции здесь, чтобы вы могли одна версия схемы к другой, не создавать свежую схему из нуля - у нас есть файл db / schema.rb для этого.

Итак, как только вы на самом деле начать работать с реальным приложением, люди не будут бегать рано миграции, когда они создали применение. Они начнут с любая версия хранится в db / schema.rb и игнорировать все эти предыдущие миграции. Это значит, что любые данные, созданные миграциями никогда не попадать в базу данных, поэтому на это нельзя полагаться.

Есть много альтернативные способы иметь больше постоянные начальные данные. Самый простой вероятно, просто чтобы создать новый файл в db / seed.rb, который содержит те Product.create звонки, которые сделают настроить. Этот файл может быть вызван после граблей db: schema: load создает исходная схема.

16
ответ дан 2 December 2019 в 07:22
поделиться

часто миграции подходят лучше всего и не могут быть заменены отдельным скриптом. Представьте себе следующий сценарий: приложение уже используется с живыми данными; столбец кода содержит код в форме «name-zip_code» (да, я знаю, что это некрасиво, но это случается), и вы хотите разделить его на два столбца, «name» и «zip_code», избавляясь от « code '.


def self.up
  add_column :companies, :zip_code, :integer
  add_column :companies, :name, :string
  Company.reset_column_information
  Company.find(:all).each do |company|
    name, zip_code = company.code.split('-')
    company.update_attributes(:name => name, :zip_code => zip_code)  
  end
  remove_column :companies, :code
end

в этом случае столбец code не может быть удален до передачи данных в столбцы name и zip code.

4
ответ дан 2 December 2019 в 07:22
поделиться

Когда мне нужно изменить некоторые данные в базе данных, я создам задачу Rake, которая запускает некоторую библиотечную функцию, чтобы сделать работа. Таким образом, манипулирование данными будет повторяться и, если потребуется, также может быть запущено из миграции.

1
ответ дан 2 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: