diff --git a/bookwyrm/management/commands/instance_version.py b/bookwyrm/management/commands/instance_version.py new file mode 100644 index 00000000..ca150d64 --- /dev/null +++ b/bookwyrm/management/commands/instance_version.py @@ -0,0 +1,54 @@ +""" Get your admin code to allow install """ +from django.core.management.base import BaseCommand + +from bookwyrm import models +from bookwyrm.settings import VERSION + + +# pylint: disable=no-self-use +class Command(BaseCommand): + """command-line options""" + + help = "What version is this?" + + def add_arguments(self, parser): + """specify which function to run""" + parser.add_argument( + "--current", + action="store_true", + help="Version stored in database", + ) + parser.add_argument( + "--target", + action="store_true", + help="Version stored in settings", + ) + parser.add_argument( + "--update", + action="store_true", + help="Update database version", + ) + + # pylint: disable=unused-argument + def handle(self, *args, **options): + """execute init""" + site = models.SiteSettings.objects.get() + current = site.version or "0.0.1" + target = VERSION + if options.get("current"): + print(current) + return + + if options.get("target"): + print(target) + return + + if options.get("update"): + site.version = target + site.save() + return + + if current != target: + print(f"{current}/{target}") + else: + print(current) diff --git a/bookwyrm/migrations/0145_sitesettings_version.py b/bookwyrm/migrations/0145_sitesettings_version.py new file mode 100644 index 00000000..649f90ab --- /dev/null +++ b/bookwyrm/migrations/0145_sitesettings_version.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.12 on 2022-03-16 18:10 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("bookwyrm", "0144_alter_announcement_display_type"), + ] + + operations = [ + migrations.AddField( + model_name="sitesettings", + name="version", + field=models.CharField(blank=True, max_length=10, null=True), + ), + ] diff --git a/bookwyrm/models/site.py b/bookwyrm/models/site.py index c6c53f76..cbad6c4b 100644 --- a/bookwyrm/models/site.py +++ b/bookwyrm/models/site.py @@ -27,6 +27,7 @@ class SiteSettings(models.Model): default_theme = models.ForeignKey( "Theme", null=True, blank=True, on_delete=models.SET_NULL ) + version = models.CharField(null=True, blank=True, max_length=10) # admin setup options install_mode = models.BooleanField(default=False) diff --git a/bookwyrm/settings.py b/bookwyrm/settings.py index ec30bd67..f8d4c397 100644 --- a/bookwyrm/settings.py +++ b/bookwyrm/settings.py @@ -11,7 +11,7 @@ from django.utils.translation import gettext_lazy as _ env = Env() env.read_env() DOMAIN = env("DOMAIN") -VERSION = "0.3.3" +VERSION = "0.3.4" RELEASE_API = env( "RELEASE_API", diff --git a/bw-dev b/bw-dev index 9751219a..b610758f 100755 --- a/bw-dev +++ b/bw-dev @@ -163,6 +163,7 @@ case "$CMD" in update) git pull docker-compose build + ./update.sh runweb python manage.py migrate runweb python manage.py collectstatic --no-input docker-compose up -d diff --git a/updates/0.3.4.sh b/updates/0.3.4.sh new file mode 100755 index 00000000..fe7f94dd --- /dev/null +++ b/updates/0.3.4.sh @@ -0,0 +1 @@ +./bw-dev migrate django_celery_beat