mirror of
https://github.com/ArchiveBox/ArchiveBox.git
synced 2026-01-03 01:15:57 +10:00
wip 2
This commit is contained in:
@@ -1,140 +0,0 @@
|
||||
# Generated by Django 5.1.1 on 2024-10-02 04:34
|
||||
# Modified: Removed abid/charidfield - ABID system removed
|
||||
|
||||
import archivebox.base_models.models
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
def drop_machine_abid_fields_if_exist(apps, schema_editor):
|
||||
"""Drop abid fields from machine tables if they exist."""
|
||||
connection = schema_editor.connection
|
||||
tables_and_fields = [
|
||||
('machine_machine', 'abid'),
|
||||
('machine_networkinterface', 'abid'),
|
||||
]
|
||||
for table_name, field_name in tables_and_fields:
|
||||
with connection.cursor() as cursor:
|
||||
try:
|
||||
cursor.execute(f"PRAGMA table_info({table_name})")
|
||||
columns = [row[1] for row in cursor.fetchall()]
|
||||
if field_name in columns:
|
||||
print(f" Dropping {table_name}.{field_name}...")
|
||||
cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN {field_name}")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name="Machine",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.UUIDField(
|
||||
default=None,
|
||||
editable=False,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
unique=True,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
# Removed: abid field - ABID system removed
|
||||
(
|
||||
"created_at",
|
||||
archivebox.base_models.models.AutoDateTimeField(
|
||||
db_index=True, default=None
|
||||
),
|
||||
),
|
||||
("modified_at", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"guid",
|
||||
models.CharField(
|
||||
default=None, editable=False, max_length=64, unique=True
|
||||
),
|
||||
),
|
||||
("hostname", models.CharField(default=None, max_length=63)),
|
||||
("hw_in_docker", models.BooleanField(default=False)),
|
||||
("hw_in_vm", models.BooleanField(default=False)),
|
||||
("hw_manufacturer", models.CharField(default=None, max_length=63)),
|
||||
("hw_product", models.CharField(default=None, max_length=63)),
|
||||
("hw_uuid", models.CharField(default=None, max_length=255)),
|
||||
("os_arch", models.CharField(default=None, max_length=15)),
|
||||
("os_family", models.CharField(default=None, max_length=15)),
|
||||
("os_platform", models.CharField(default=None, max_length=63)),
|
||||
("os_release", models.CharField(default=None, max_length=63)),
|
||||
("os_kernel", models.CharField(default=None, max_length=255)),
|
||||
("stats", models.JSONField(default=None)),
|
||||
],
|
||||
options={
|
||||
"abstract": False,
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="NetworkInterface",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.UUIDField(
|
||||
default=None,
|
||||
editable=False,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
unique=True,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
# Removed: abid field - ABID system removed
|
||||
(
|
||||
"created_at",
|
||||
archivebox.base_models.models.AutoDateTimeField(
|
||||
db_index=True, default=None
|
||||
),
|
||||
),
|
||||
("modified_at", models.DateTimeField(auto_now=True)),
|
||||
(
|
||||
"mac_address",
|
||||
models.CharField(default=None, editable=False, max_length=17),
|
||||
),
|
||||
(
|
||||
"ip_public",
|
||||
models.GenericIPAddressField(default=None, editable=False),
|
||||
),
|
||||
(
|
||||
"ip_local",
|
||||
models.GenericIPAddressField(default=None, editable=False),
|
||||
),
|
||||
(
|
||||
"dns_server",
|
||||
models.GenericIPAddressField(default=None, editable=False),
|
||||
),
|
||||
("iface", models.CharField(default=None, max_length=15)),
|
||||
("hostname", models.CharField(default=None, max_length=63)),
|
||||
("isp", models.CharField(default=None, max_length=63)),
|
||||
("city", models.CharField(default=None, max_length=63)),
|
||||
("region", models.CharField(default=None, max_length=63)),
|
||||
("country", models.CharField(default=None, max_length=63)),
|
||||
(
|
||||
"machine",
|
||||
models.ForeignKey(
|
||||
default=None,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="machine.machine",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"unique_together": {
|
||||
("machine", "ip_public", "ip_local", "mac_address", "dns_server")
|
||||
},
|
||||
},
|
||||
),
|
||||
migrations.RunPython(drop_machine_abid_fields_if_exist, reverse_code=migrations.RunPython.noop),
|
||||
]
|
||||
111
archivebox/machine/migrations/0001_squashed.py
Normal file
111
archivebox/machine/migrations/0001_squashed.py
Normal file
@@ -0,0 +1,111 @@
|
||||
# Squashed migration: replaces 0001-0004
|
||||
# For fresh installs: creates final schema
|
||||
# For dev users with 0001-0004 applied: marked as applied (no-op)
|
||||
|
||||
from uuid import uuid4
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
initial = True
|
||||
|
||||
replaces = [
|
||||
('machine', '0001_initial'),
|
||||
('machine', '0002_alter_machine_stats_installedbinary'),
|
||||
('machine', '0003_alter_installedbinary_options_and_more'),
|
||||
('machine', '0004_alter_installedbinary_abspath_and_more'),
|
||||
]
|
||||
|
||||
dependencies = []
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='Machine',
|
||||
fields=[
|
||||
('num_uses_failed', models.PositiveIntegerField(default=0)),
|
||||
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
|
||||
('id', models.UUIDField(default=uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now)),
|
||||
('modified_at', models.DateTimeField(auto_now=True)),
|
||||
('guid', models.CharField(default=None, editable=False, max_length=64, unique=True)),
|
||||
('hostname', models.CharField(default=None, max_length=63)),
|
||||
('hw_in_docker', models.BooleanField(default=False)),
|
||||
('hw_in_vm', models.BooleanField(default=False)),
|
||||
('hw_manufacturer', models.CharField(default=None, max_length=63)),
|
||||
('hw_product', models.CharField(default=None, max_length=63)),
|
||||
('hw_uuid', models.CharField(default=None, max_length=255)),
|
||||
('os_arch', models.CharField(default=None, max_length=15)),
|
||||
('os_family', models.CharField(default=None, max_length=15)),
|
||||
('os_platform', models.CharField(default=None, max_length=63)),
|
||||
('os_release', models.CharField(default=None, max_length=63)),
|
||||
('os_kernel', models.CharField(default=None, max_length=255)),
|
||||
('stats', models.JSONField(default=dict)),
|
||||
('config', models.JSONField(blank=True, default=dict)),
|
||||
],
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='NetworkInterface',
|
||||
fields=[
|
||||
('num_uses_failed', models.PositiveIntegerField(default=0)),
|
||||
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
|
||||
('id', models.UUIDField(default=uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now)),
|
||||
('modified_at', models.DateTimeField(auto_now=True)),
|
||||
('mac_address', models.CharField(default=None, editable=False, max_length=17)),
|
||||
('ip_public', models.GenericIPAddressField(default=None, editable=False)),
|
||||
('ip_local', models.GenericIPAddressField(default=None, editable=False)),
|
||||
('dns_server', models.GenericIPAddressField(default=None, editable=False)),
|
||||
('hostname', models.CharField(default=None, max_length=63)),
|
||||
('iface', models.CharField(default=None, max_length=15)),
|
||||
('isp', models.CharField(default=None, max_length=63)),
|
||||
('city', models.CharField(default=None, max_length=63)),
|
||||
('region', models.CharField(default=None, max_length=63)),
|
||||
('country', models.CharField(default=None, max_length=63)),
|
||||
('machine', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='machine.machine')),
|
||||
],
|
||||
options={
|
||||
'unique_together': {('machine', 'ip_public', 'ip_local', 'mac_address', 'dns_server')},
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='Dependency',
|
||||
fields=[
|
||||
('id', models.UUIDField(default=uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now)),
|
||||
('modified_at', models.DateTimeField(auto_now=True)),
|
||||
('bin_name', models.CharField(db_index=True, max_length=63, unique=True)),
|
||||
('bin_providers', models.CharField(default='*', max_length=127)),
|
||||
('custom_cmds', models.JSONField(blank=True, default=dict)),
|
||||
('config', models.JSONField(blank=True, default=dict)),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Dependency',
|
||||
'verbose_name_plural': 'Dependencies',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='InstalledBinary',
|
||||
fields=[
|
||||
('num_uses_failed', models.PositiveIntegerField(default=0)),
|
||||
('num_uses_succeeded', models.PositiveIntegerField(default=0)),
|
||||
('id', models.UUIDField(default=uuid4, editable=False, primary_key=True, serialize=False, unique=True)),
|
||||
('created_at', models.DateTimeField(db_index=True, default=django.utils.timezone.now)),
|
||||
('modified_at', models.DateTimeField(auto_now=True)),
|
||||
('name', models.CharField(blank=True, db_index=True, default=None, max_length=63)),
|
||||
('binprovider', models.CharField(blank=True, default=None, max_length=31)),
|
||||
('abspath', models.CharField(blank=True, default=None, max_length=255)),
|
||||
('version', models.CharField(blank=True, default=None, max_length=32)),
|
||||
('sha256', models.CharField(blank=True, default=None, max_length=64)),
|
||||
('machine', models.ForeignKey(blank=True, default=None, on_delete=django.db.models.deletion.CASCADE, to='machine.machine')),
|
||||
('dependency', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='installedbinary_set', to='machine.dependency')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'Installed Binary',
|
||||
'verbose_name_plural': 'Installed Binaries',
|
||||
'unique_together': {('machine', 'name', 'abspath', 'version', 'sha256')},
|
||||
},
|
||||
),
|
||||
]
|
||||
@@ -1,78 +0,0 @@
|
||||
# Generated by Django 5.1.1 on 2024-10-03 07:25
|
||||
# Modified: Removed abid/charidfield - ABID system removed
|
||||
|
||||
import archivebox.base_models.models
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
def drop_installedbinary_abid_if_exist(apps, schema_editor):
|
||||
"""Drop abid field from installedbinary if it exists."""
|
||||
connection = schema_editor.connection
|
||||
with connection.cursor() as cursor:
|
||||
try:
|
||||
cursor.execute("PRAGMA table_info(machine_installedbinary)")
|
||||
columns = [row[1] for row in cursor.fetchall()]
|
||||
if 'abid' in columns:
|
||||
print(" Dropping machine_installedbinary.abid...")
|
||||
cursor.execute("ALTER TABLE machine_installedbinary DROP COLUMN abid")
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("machine", "0001_initial"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="machine",
|
||||
name="stats",
|
||||
field=models.JSONField(default=dict),
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name="InstalledBinary",
|
||||
fields=[
|
||||
(
|
||||
"id",
|
||||
models.UUIDField(
|
||||
default=None,
|
||||
editable=False,
|
||||
primary_key=True,
|
||||
serialize=False,
|
||||
unique=True,
|
||||
verbose_name="ID",
|
||||
),
|
||||
),
|
||||
# Removed: abid field - ABID system removed
|
||||
(
|
||||
"created_at",
|
||||
archivebox.base_models.models.AutoDateTimeField(
|
||||
db_index=True, default=None
|
||||
),
|
||||
),
|
||||
("modified_at", models.DateTimeField(auto_now=True)),
|
||||
("name", models.CharField(default=None, max_length=63)),
|
||||
("binprovider", models.CharField(default=None, max_length=31)),
|
||||
("abspath", models.CharField(default=None, max_length=255)),
|
||||
("version", models.CharField(default=None, max_length=32)),
|
||||
("sha256", models.CharField(default=None, max_length=64)),
|
||||
(
|
||||
"machine",
|
||||
models.ForeignKey(
|
||||
default=None,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="machine.machine",
|
||||
),
|
||||
),
|
||||
],
|
||||
options={
|
||||
"unique_together": {
|
||||
("machine", "name", "binprovider", "abspath", "version", "sha256")
|
||||
},
|
||||
},
|
||||
),
|
||||
migrations.RunPython(drop_installedbinary_abid_if_exist, reverse_code=migrations.RunPython.noop),
|
||||
]
|
||||
@@ -1,50 +0,0 @@
|
||||
# Generated by Django 5.1.1 on 2024-10-03 09:20
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("machine", "0002_alter_machine_stats_installedbinary"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name="installedbinary",
|
||||
options={
|
||||
"verbose_name": "Installed Binary",
|
||||
"verbose_name_plural": "Installed Binaries",
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="installedbinary",
|
||||
name="num_uses_failed",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="installedbinary",
|
||||
name="num_uses_succeeded",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="machine",
|
||||
name="num_uses_failed",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="machine",
|
||||
name="num_uses_succeeded",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="networkinterface",
|
||||
name="num_uses_failed",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name="networkinterface",
|
||||
name="num_uses_succeeded",
|
||||
field=models.PositiveIntegerField(default=0),
|
||||
),
|
||||
]
|
||||
@@ -1,49 +0,0 @@
|
||||
# Generated by Django 5.1.1 on 2024-10-03 09:50
|
||||
|
||||
import django.db.models.deletion
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
("machine", "0003_alter_installedbinary_options_and_more"),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="abspath",
|
||||
field=models.CharField(blank=True, default=None, max_length=255),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="binprovider",
|
||||
field=models.CharField(blank=True, default=None, max_length=31),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="machine",
|
||||
field=models.ForeignKey(
|
||||
blank=True,
|
||||
default=None,
|
||||
on_delete=django.db.models.deletion.CASCADE,
|
||||
to="machine.machine",
|
||||
),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="name",
|
||||
field=models.CharField(blank=True, default=None, max_length=63),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="sha256",
|
||||
field=models.CharField(blank=True, default=None, max_length=64),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name="installedbinary",
|
||||
name="version",
|
||||
field=models.CharField(blank=True, default=None, max_length=32),
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user