]> git.ipfire.org Git - people/jschlag/pbs.git/commitdiff
Migrate arch to text in packages table
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 8 Oct 2017 16:30:37 +0000 (17:30 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 8 Oct 2017 16:30:37 +0000 (17:30 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/packages.py
src/buildservice/repository.py
src/database.sql
src/hub/handlers.py

index e9b2232bc837af515ad489da7d686ca30e7b78fe..e2befe7119c1dec5d07267ac6e5d587598530a1e 100644 (file)
@@ -121,7 +121,6 @@ class Package(base.Object):
                # Cache.
                self._data = data
                self._deps = None
-               self._arch = None
                self._filelist = None
                self._job = None
                self._commit = None
@@ -282,11 +281,7 @@ class Package(base.Object):
 
        @property
        def arch(self):
-               if self._arch is None:
-                       self._arch = self.pakfire.arches.get_by_id(self.data.arch)
-                       assert self._arch
-
-               return self._arch
+               return self.data.arch
 
        @property
        def type(self):
@@ -294,7 +289,7 @@ class Package(base.Object):
 
        @property
        def friendly_name(self):
-               return "%s-%s.%s" % (self.name, self.friendly_version, self.arch.name)
+               return "%s-%s.%s" % (self.name, self.friendly_version, self.arch)
 
        @property
        def friendly_version(self):
index 1cd1886677264fb231694ca00f0570093dbbe280..9e88a1f38ca5c22571c1f6aa3dcbe0d34b75a5fc 100644 (file)
@@ -346,7 +346,7 @@ class Repository(base.Object):
                                JOIN builds ON builds.pkg_id = packages.id \
                                JOIN repositories_builds ON builds.id = repositories_builds.build_id \
                                WHERE packages.arch = %s AND repositories_builds.repo_id = %s",
-                               arch.id, self.id)
+                               arch.name, self.id)
 
                else:
                        noarch = self.pakfire.arches.get_by_name("noarch")
@@ -357,9 +357,9 @@ class Repository(base.Object):
                                JOIN jobs ON jobs_packages.job_id = jobs.id \
                                JOIN builds ON builds.id = jobs.build_id \
                                JOIN repositories_builds ON builds.id = repositories_builds.build_id \
-                               WHERE (jobs.arch_id = %s OR jobs.arch_id = %s) AND \
+                               WHERE (jobs.arch = %s OR jobs.arch = %s) AND \
                                repositories_builds.repo_id = %s",
-                               arch.id, noarch.id, self.id)
+                               arch.name, noarch.name, self.id)
 
                return pkgs
 
index 12a0c71cacebc0653f2a0956e75d985dfb93e5b9..90a2f15a0835e1ed119046a7146b0de212ce7ab2 100644 (file)
@@ -860,7 +860,7 @@ CREATE TABLE packages (
     version text NOT NULL,
     release text NOT NULL,
     type packages_type NOT NULL,
-    arch integer NOT NULL,
+    arch text NOT NULL,
     groups text NOT NULL,
     maintainer text NOT NULL,
     license text NOT NULL,
@@ -3235,7 +3235,7 @@ ALTER TABLE ONLY mirrors_history
 --
 
 ALTER TABLE ONLY packages
-    ADD CONSTRAINT packages_arch FOREIGN KEY (arch) REFERENCES arches(id);
+    ADD CONSTRAINT packages_arch FOREIGN KEY (arch) REFERENCES arches(name);
 
 
 --
index baee6850bb43428ecf117c8bd6b7af2fe7dbf4e6..b623c789d81fd0dc11d45d1887e3af49bc4014f0 100644 (file)
@@ -390,7 +390,7 @@ class BuildsGetHandler(BaseHandler):
 class JobsBaseHandler(BaseHandler):
        def job2json(self, job):
                ret = {
-                       "arch"         : job.arch.name,
+                       "arch"         : job.arch,
                        "build"        : job.build.uuid,
                        "duration"     : job.duration,
                        "name"         : job.name,
@@ -486,7 +486,7 @@ class PackagesGetHandler(BaseHandler):
                        raise tornado.web.HTTPError(404, "Could not find package: %s" % package_uuid)
 
                ret = {
-                       "arch"             : pkg.arch.name,
+                       "arch"             : pkg.arch,
                        "build_id"         : pkg.build_id,
                        "build_host"       : pkg.build_host,
                        "build_time"       : pkg.build_time.isoformat(),
@@ -618,7 +618,7 @@ class BuildersJobsQueueHandler(BuildersBaseHandler):
 
                        ret = {
                                "id"                 : job.uuid,
-                               "arch"               : job.arch.name,
+                               "arch"               : job.arch,
                                "source_url"         : job.build.source_download,
                                "source_hash_sha512" : job.build.source_hash_sha512,
                                "type"               : job.type,