Use a single populate script with faker data

This commit is contained in:
David Heinemeier Hansson
2025-10-31 21:19:31 +01:00
parent 4f29e3aa3a
commit d49c7f45eb
5 changed files with 26 additions and 30 deletions
+1
View File
@@ -64,6 +64,7 @@ group :development, :test do
gem "brakeman", require: false gem "brakeman", require: false
gem "rubocop-rails-omakase", require: false gem "rubocop-rails-omakase", require: false
gem "letter_opener" gem "letter_opener"
gem "faker"
end end
group :test do group :test do
+3
View File
@@ -240,6 +240,8 @@ GEM
erubi (1.13.1) erubi (1.13.1)
et-orbi (1.4.0) et-orbi (1.4.0)
tzinfo tzinfo
faker (3.5.2)
i18n (>= 1.8.11, < 2)
ffi (1.17.2) ffi (1.17.2)
ffi (1.17.2-arm64-darwin) ffi (1.17.2-arm64-darwin)
ffi (1.17.2-x86_64-darwin) ffi (1.17.2-x86_64-darwin)
@@ -609,6 +611,7 @@ DEPENDENCIES
bundler-audit bundler-audit
capybara capybara
debug debug
faker
fizzy-saas! fizzy-saas!
geared_pagination (~> 1.2) geared_pagination (~> 1.2)
image_processing (~> 1.14) image_processing (~> 1.14)
+22
View File
@@ -0,0 +1,22 @@
require_relative "../../config/environment"
require "faker"
CARDS_COUNT = ARGV.first&.to_i || 10_000
COLLECTIONS_COUNT = ARGV.second&.to_i || 1
ApplicationRecord.current_tenant = ApplicationRecord.tenants.first
Current.session = Session.first
puts "Creating #{CARDS_COUNT} cards across #{COLLECTIONS_COUNT} collection(s)"
COLLECTIONS_COUNT.times do
Collection.create! name: Faker::Company.buzzword, all_access: true
print "."
end
CARDS_COUNT.times do
card = Collection.take.cards.create! \
title: Faker::Company.bs, description: Faker::Hacker.say_something_smart, status: :published
print "."
end
-13
View File
@@ -1,13 +0,0 @@
require_relative "../../config/environment"
CARDS_COUNT = 10_000
# 37signals seed
ApplicationRecord.current_tenant = "897362094"
Current.session = Session.first
collection = Collection.first
CARDS_COUNT.times do |index|
card = collection.cards.create!(title: "Card #{index}", status: :published)
print "."
end
-17
View File
@@ -1,17 +0,0 @@
require_relative "../../config/environment"
COLLECTIONS_COUNT = 100
CARDS_PER_COLLECTION = 50
ApplicationRecord.current_tenant = "development-tenant"
account = Account.sole
user = account.users.first
Current.session = user.sessions.last
workflow = account.workflows.first
COLLECTIONS_COUNT.times do |collection_index|
collection = Collection.create!(name: "Collection #{collection_index}", creator: user, workflow: workflow)
CARDS_PER_COLLECTION.times do |card_index|
collection.cards.create!(title: "Card #{card_index}", creator: user, status: :published)
end
end