Class: MultiCompress::DBDeployment::DeploymentBundle
- Inherits:
-
Object
- Object
- MultiCompress::DBDeployment::DeploymentBundle
- Defined in:
- lib/multi_compress/db_deployment.rb
Defined Under Namespace
Classes: DeterministicTarWriter
Constant Summary collapse
- DEFAULT_ARCHIVE_EPOCH =
315_619_200- TARGETS =
{ "postgres" => { source_paths: %w[ db_core postgres_extension ext/multi_compress/vendor/zstd docs/database-envelope-v1.md docs/database-envelope-v2.md docs/rfcs/0002-mcdb2-dictionaries.md LICENSE.txt THIRD_PARTY_NOTICES.md ], template_path: "db_deployment/postgres" }, "mysql" => { source_paths: %w[ db_core mysql_udf ext/multi_compress/vendor/zstd docs/database-envelope-v1.md docs/database-envelope-v2.md docs/rfcs/0002-mcdb2-dictionaries.md LICENSE.txt THIRD_PARTY_NOTICES.md ], template_path: "db_deployment/mysql" } }.freeze
Instance Method Summary collapse
-
#initialize(target, output, force:) ⇒ DeploymentBundle
constructor
A new instance of DeploymentBundle.
- #write! ⇒ Object
Constructor Details
#initialize(target, output, force:) ⇒ DeploymentBundle
Returns a new instance of DeploymentBundle.
732 733 734 735 736 737 |
# File 'lib/multi_compress/db_deployment.rb', line 732 def initialize(target, output, force:) @target = target @output = File.(output) @force = force @root_name = "multi_compress-#{target}-#{MultiCompress::VERSION}" end |
Instance Method Details
#write! ⇒ Object
739 740 741 742 743 744 745 746 747 748 749 750 |
# File 'lib/multi_compress/db_deployment.rb', line 739 def write! raise Error, "deployment sources are unavailable from #{ROOT}" unless File.directory?(ROOT) raise Error, "#{@output} already exists (use --force to overwrite)" if File.exist?(@output) && !@force Dir.mktmpdir("multi-compress-db-package") do |temporary_directory| bundle_root = File.join(temporary_directory, @root_name) FileUtils.mkdir_p(bundle_root) stage_payload!(bundle_root) (bundle_root) write_tarball!(temporary_directory) end end |