Mam aplikację szynową w produkcji z danymi nasion. Musimy dodać więcej danych źródłowych, ale używając rake db:populate
zreplikuje wszystkie stare dane początkowe i oczywiście nie chcemy dodawać danych do migracji.
Jaka jest najlepsza metoda dodawania dodatkowych danych źródłowych do aplikacji?
Odpowiedzi:
1 dla odpowiedzi № 1Prawdopodobnie będziesz musiał zbudować kolejną prowizjęzadanie. Lub możesz po prostu sprawdzić każdy nowy wiersz, aby sprawdzić, czy już istnieje. Może to potrwać dłużej, ale przynajmniej nie będziesz mieć duplikatów.
1 dla odpowiedzi nr 2
Używam nieporęcznego obejścia w moim pliku źródłowym, aby zatrzymać dodawanie tych samych danych dwukrotnie.
if Therapy.count == 0
therapies = Therapy.create([
{ :name => "Peritoneal dialysis"
},
{ :name => "Haemodialysis"
},
{ :name => "Plasma therapy"
},
{ :name => "Laparotomy"
},
{ :name => "Haemofiltration"
}
])
end
Przypuszczam, że można to zmienić w następujący sposób
if Therapy.count == 0
therapies = Therapy.create([
{ :name => "Peritoneal dialysis"
},
{ :name => "Haemodialysis"
},
{ :name => "Plasma therapy"
},
{ :name => "Laparotomy"
},
{ :name => "Haemofiltration"
}
])
elsif Therapy.count == 4
therapies = Therapy.create([
{ :name => "NEW THERAPY"
}
])
end
1 dla odpowiedzi nr 3
Stań na ramionach olbrzymów
Spójrz na SeedFu klejnot.
Umożliwia utworzenie takiego pliku źródłowego, który automatycznie prowadzi do jednej lub więcej kolumn:
User.seed(:id,
{ id: 1, login: "jon", email: "jon@example.com", name: "Jon" },
{ id: 2, login: "emily", email: "emily@example.com", name: "Emily" }
)
Możesz także zaktualizować te pliki źródłowe, a on zajmie się aktualizacją wartości DB.
To w połączeniu z Seedbank, to właśnie skończyłem używać.
-1 dla odpowiedzi № 4
Jeśli uważasz, że powinno być coś do zrobienia, możesz sprawdzić dostępne zadania.
rake -T seed
rake db:seed # Load the seed data from db/seeds.rb
To powiedziawszy seed_fu zapewnia znacznie lepszą funkcjonalność IMHO