1
0
مراية لـ https://github.com/postalserver/postal.git تم المزامنة 2025-11-30 21:32:30 +00:00
الملفات
postal/lib/tasks/postal.rake
Adam Cooke b35eea6338 feat: add "postal:update" task
this will load the schema if no schema exists or update it if it does
2024-03-04 21:01:31 +00:00

48 أسطر
1.7 KiB
Ruby

# frozen_string_literal: true
namespace :postal do
desc "Run all migrations on message databases"
task migrate_message_databases: :environment do
Server.all.each do |server|
puts "\e[35m-------------------------------------------------------------------\e[0m"
puts "\e[35m#{server.id}: #{server.name} (#{server.permalink})\e[0m"
puts "\e[35m-------------------------------------------------------------------\e[0m"
server.message_db.provisioner.migrate
end
end
desc "Generate configuration documentation"
task generate_config_docs: :environment do
require "konfig/exporters/env_vars_as_markdown"
FileUtils.mkdir_p("doc/config")
output = Konfig::Exporters::EnvVarsAsMarkdown.new(Postal::ConfigSchema).export
File.write("doc/config/environment-variables.md", output)
output = Postal::YamlConfigExporter.new(Postal::ConfigSchema).export
File.write("doc/config/yaml.yml", output)
end
desc "Generate Helm Environment Variables"
task generate_helm_env_vars: :environment do
puts Postal::HelmConfigExporter.new(Postal::ConfigSchema).export
end
desc "Update the database"
task update: :environment do
mysql = ActiveRecord::Base.connection
if mysql.table_exists?("schema_migrations") &&
mysql.select_all("select * from schema_migrations").any?
puts "Database schema is already loaded. Running migrations with db:migrate"
Rake::Task["db:migrate"].invoke
else
puts "No schema migrations exist. Loading schema with db:schema:load"
Rake::Task["db:schema:load"].invoke
end
end
end
Rake::Task["db:migrate"].enhance do
Rake::Task["postal:migrate_message_databases"].invoke
end