Read-only mirror of https://github.com/sfa-siard/SiardCmd — Schweizerisches Bundesarchiv. Issues & pull requests at the source.
  • Java 98.8%
  • TSQL 0.4%
  • PLpgSQL 0.3%
  • Shell 0.3%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-03-24 15:43:02 +01:00
.github/workflows chore: migrate to Java 17 2025-08-27 14:56:09 +02:00
doc/licenses chore: update documentation 2025-09-23 10:51:20 +02:00
docker Replaced Ant with Gradle, changed release-process, integration tests with TestContainers 2023-09-21 16:17:38 +02:00
etc remove h2 2022-05-05 15:07:28 +02:00
gradle/wrapper chore: upgrade to gradle 8.7 (#63) 2025-08-06 11:29:08 +02:00
src fix: schema name case sensitivity 2025-09-29 12:55:49 +02:00
testfiles refactor: reorganise integration test directory structure 2025-07-21 17:15:17 +02:00
.gitattributes 2.1.38 2018-04-13 15:37:51 +02:00
.gitignore build: setup gradle build 2023-08-25 13:18:34 +02:00
build.gradle.kts chore: upgrade dependencies 2025-09-29 23:40:51 +02:00
gradlew chore: upgrade to gradle 8.7 (#63) 2025-08-06 11:29:08 +02:00
gradlew.bat chore: upgrade to gradle 8.7 (#63) 2025-08-06 11:29:08 +02:00
LICENSE.txt first public version 2018-04-05 14:13:42 +02:00
README.md doc: move archival not to the top 2026-03-24 15:43:02 +01:00
RELEASE.txt Sync with dev/enter 2020-09-25 11:29:28 +02:00
settings.gradle.kts chore: migrate to Java 17 2025-08-27 14:56:09 +02:00

⚠️ ARCHIVED REPOSITORY
This repository is archived and no longer maintained. All development has moved to the new monorepo:
https://github.com/sfa-siard/siard-suite

Please create any issues or pull requests in the new monorepo, which now contains all submodules including this one.

SiardCmd - SIARD 2.2 Command-line Interface to download and upload relational databases

This package contains the SIARD command-line interface to download and upload relational databases in SIARD (Software-Independent Archival of Relational Databases) Format 2.2.

Getting started (for developers)

Prerequisites

  • JDK 17

Build the project

./gradlew clean build

Integration tests

Runs all integration tests (Note: TestContainers are used, so Docker is required):

./gradlew integrationTest

SIARD command-line tools

To run the command-line tools siard-from-db and siard-to-db, first install the distribution:

./gradlew installDist

This will create the executable scripts in the build/install/siardcmd/bin directory. For example, to archive a database, you would use siard-from-db:

./siard-from-db -j=jdbc:mysql://localhost:3306/database_name -u=username -p=password -s=/path/to/siard/file/filename.siard

To archive a specific schema only, you can use the --schema parameter. Passages 6.3. and 6.4. of the User Manual further describe the parameters in detail.

Deliverables

Builds the project, runs unit tests, and packages all artifacts with additional required files for execution in a CLI into ZIP and TAR under build/distributions/:

./gradlew assembleDist

Versioning, tags, and releases

Versions and tags are managed with the Axion Release Plugin for Gradle.

Short overview:

./gradlew currentVersion  # Shows the current version

./gradlew release         # Creates a new release, adds a tag, and pushes it to remote

Once a tag is pushed to remote, GitHub Actions will create and upload deliverables specified in deliverables.yml.

Documentation

Declaration

Contributions to the codebase have been made with the support of Windsurf. Windsurf is AI-powered code completion tool, that is trained exclusively on natural language and source code data with permissive licenses.