Database scanning
SQL (SQLAlchemy)
Any database with a SQLAlchemy dialect works. Install the driver in the same
environment (psycopg2, pymysql, pyodbc, …).
PostgreSQL — all schemas:
metacrafter scan sql "postgresql+psycopg2://username:password@127.0.0.1:15432/dbname" \
--format short \
--output-format json \
--stdout
PostgreSQL — one schema, CSV summary:
metacrafter scan sql "postgresql+psycopg2://username:password@127.0.0.1:15432/dbname" \
--schema public \
--format full \
--output-format csv \
-o db_results.csv
SQLite:
metacrafter scan sql "sqlite:///path/to/database.db" \
--format full \
--output-format json \
-o sqlite_results.json
MySQL / MariaDB:
metacrafter scan sql "mysql+pymysql://user:password@localhost:3306/dbname" \
--format full \
--output-format json \
-o mysql_results.json
DuckDB (driver ships with Metacrafter):
metacrafter scan sql "duckdb:///path/to/database.duckdb" \
--format full \
--output-format json \
-o duckdb_results.json
SQL Server / Oracle:
metacrafter scan sql "mssql+pyodbc://user:password@server/dbname?driver=ODBC+Driver+17+for+SQL+Server" \
--format full -o sqlserver_results.json
metacrafter scan sql "oracle+cx_oracle://user:password@host:1521/service_name" \
--format full -o oracle_results.json
Batching and progress
metacrafter scan sql "postgresql://user:pass@localhost/db" \
--batch-size 1000 \
--progress \
--format full \
-o results.json
MongoDB
metacrafter scan mongodb localhost \
--port 27017 \
--dbname mydatabase \
--output-format json \
-o mongodb_results.json
With authentication or a replica-set URI:
metacrafter scan mongodb localhost \
--port 27017 \
--dbname mydatabase \
--username admin \
--password secret \
--format full \
-o mongodb_results.json
metacrafter scan mongodb "mongodb://user:pass@host1:27017,host2:27017/dbname?replicaSet=rs0" \
--format full \
-o mongodb_results.json