MCPcopy
hub / github.com/fastmonkeys/stellar

github.com/fastmonkeys/stellar @main sqlite

repository ↗ · DeepWiki ↗
76 symbols 255 edges 11 files 10 documented · 13%
README

Stellar - Fast database snapshot and restore tool for development.

Build Status   

Stellar allows you to quickly restore database when you are e.g. writing database migrations, switching branches or messing with SQL. PostgreSQL and MySQL (partially) are supported.

Screenshot of Stellar terminal window

Benchmarks

Stellar is fast. It can restore a database ~140 times faster than using the usual pg_dump & pg_restore.

Benchmarking database restore speed

How it works

Stellar works by storing copies of the database in the RDBMS (named as stellar_xxx_master and stellar_xxxx_slave). When restoring the database, Stellar simply renames the database making it lot faster than the usual SQL dump. However, Stellar uses lots of storage space so you probably don't want to make too many snapshots or you will eventually run out of storage space.

Warning: Please don't use Stellar if you can't afford data loss. It's great for developing but not meant for production.

How to get started

You can install Stellar with pip.

$ pip install stellar

After that, you should go to your project folder and initialize Stellar settings. Stellar initialization wizard will help you with that.

$ stellar init

Stellar settings are saved as 'stellar.yaml' so you probably want to add that to your .gitignore.

$ echo stellar.yaml >> .gitignore

Done! :dancers:

How to take a snapshot

$ stellar snapshot SNAPSHOT_NAME

How to restore from a snapshot

$ stellar restore SNAPSHOT_NAME

Common issues

```` sqlalchemy.exc.OperationalError: (OperationalError) (1044, u"Access denied for user 'my_db_username'@'localhost' to database 'stellar_data'") "CREATE DATABASE stellar_data CHARACTER SET = 'utf8'" () `````

Make sure you have the rights to create new databases. See Issue 10 for discussion

If you are using PostgreSQL, make sure you have a database that is named the same as the unix username. You can test this by running just psql. (See issue #44 for details)

Core symbols most depended-on inside this repo

get_table_name
called by 15
stellar/models.py
get_app
called by 7
stellar/command.py
get_snapshot
called by 6
stellar/app.py
get_unique_hash
called by 4
stellar/models.py
get_engine_url
called by 3
stellar/operations.py
_get_pid_column
called by 3
stellar/operations.py
terminate_database_connections
called by 3
stellar/operations.py
upgrade_from_old_version
called by 3
stellar/command.py

Shape

Method 34
Function 31
Class 11

Languages

Python100%

Modules by API surface

stellar/app.py22 symbols
stellar/command.py16 symbols
stellar/operations.py10 symbols
tests/test_starts.py7 symbols
tests/test_operations.py7 symbols
stellar/models.py7 symbols
stellar/config.py5 symbols
tests/test_models.py2 symbols

Dependencies from manifests, versioned

PyYAML3.11 · 1×
SQLAlchemy0.9.6 · 1×
SQLAlchemy-Utils0.26.13 · 1×
click3.1 · 1×
humanize0.5.1 · 1×
psutil2.1.1 · 1×
schema0.3.1 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add stellar \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact