New database schema need to change all code files

This commit is contained in:
2025-10-01 17:32:08 -03:00
parent bb4f221fc9
commit cfb11cf6e6
4 changed files with 30 additions and 21 deletions

View File

@@ -61,7 +61,7 @@ func init() {
log.Fatal(db)
}
defer db.Close()
db.Exec("CREATE TABLE IF NOT EXISTS packages (query_name TEXT NOT NULL,name TEXT NOT NULL UNIQUE PRIMARY KEY, version TEXT NOT NULL, dependencies TEXT NOT NULL DEFAULT '', description TEXT NOT NULL, family TEXT NOT NULL, package_d TEXT NOT NULL, filename TEXT NOT NULL, os TEXT NOT NULL, arch TEXT NOT NULL, in_cache INTEGER NOT NULL DEFAULT 1, serial INTEGER NOT NULL)")
db.Exec("CREATE TABLE IF NOT EXISTS packages (query_name TEXT NOT NULL,id TEXT NOT NULL UNIQUE PRIMARY KEY, version TEXT NOT NULL, dependencies TEXT NOT NULL DEFAULT '', description TEXT NOT NULL, family TEXT NOT NULL, package_d TEXT NOT NULL, filename TEXT NOT NULL, os TEXT NOT NULL, arch TEXT NOT NULL, in_cache INTEGER NOT NULL DEFAULT 1, serial INTEGER NOT NULL)")
} else {
log.Fatal(err)
}
@@ -250,7 +250,7 @@ var installCmd = &cobra.Command{
}
rows, err := db.Query("SELECT name, version, description FROM packages WHERE query_name = ?", inputName)
rows, err := db.Query("SELECT id, version, description FROM packages WHERE query_name = ?", inputName)
if err != nil {
log.Fatal(err)
}
@@ -509,7 +509,7 @@ var listCmd = &cobra.Command{
log.Fatal(err)
}
rows, err := db.Query("SELECT query_name, name, version, description, package_d, os, arch FROM packages")
rows, err := db.Query("SELECT query_name, id, version, description, package_d, os, arch FROM packages")
if err != nil {
log.Fatal(err)
}
@@ -546,14 +546,14 @@ var searchCmd = &cobra.Command{
var rows *sql.Rows
if len(args) > 0 {
rows, err = db.Query("SELECT query_name, name, version, description, os, arch FROM packages WHERE name LIKE ? OR description LIKE ? OR query_name LIKE ?", args[0], args[0], args[0])
rows, err = db.Query("SELECT query_name, id, version, description, os, arch FROM packages WHERE name LIKE ? OR description LIKE ? OR query_name LIKE ?", args[0], args[0], args[0])
if err != nil {
log.Fatal(err)
}
defer rows.Close()
} else {
rows, err = db.Query("SELECT query_name, name, version, description, os, arch FROM packages")
rows, err = db.Query("SELECT query_name, id, version, description, os, arch FROM packages")
if err != nil {
log.Fatal(err)
}

View File

@@ -3,6 +3,7 @@ package configs
type Manifest struct {
Info struct {
Name string `toml:"name"`
Id string `toml:"id"`
Version string `toml:"version"`
Description string `toml:"description"`
Dependencies []string `toml:"dependencies"`

View File

@@ -1,26 +1,34 @@
CREATE TABLE packages(
CREATE TABLE packages (
id TEXT NOT NULL UNIQUE PRIMARY KEY,
query_name TEXT NOT NULL,
image_url TEXT NOT NULL,
name TEXT NOT NULL UNIQUE PRIMARY KEY,
version TEXT NOT NULL,
serial INTEGER NOT NULL,
name TEXT NOT NULL,
description TEXT NOT NULL,
image_url TEXT NOT NULL,
package_url TEXT NOT NULL,
public_key BLOB NOT NULL,
signature BLOB NOT NULL,
description TEXT NOT NULL,
dependencies TEXT NOT NULL DEFAULT '',
package_url TEXT NOT NULL,
author TEXT NOT NULL,
author_verified INTEGER NOT NULL DEFAULT 0,
family TEXT NOT NULL,
arch TEXT NOT NULL,
os TEXT NOT NULL,
size INTEGER NOT NULL DEFAULT 0,
serial INTEGER NOT NULL
UNIQUE(query_name, version),
UNIQUE(query_name, serial)
);
CREATE TABLE package_dependencies(
package_id TEXT NOT NULL,
dependencie_id TEXT NOT NULL,
version_constraint TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS packages (
query_name TEXT NOT NULL,
name TEXT NOT NULL UNIQUE PRIMARY KEY,
id TEXT NOT NULL UNIQUE PRIMARY KEY,
version TEXT NOT NULL,
dependencies TEXT NOT NULL DEFAULT '',
description TEXT NOT NULL,

View File

@@ -211,7 +211,7 @@ func (p *Package) AddToInstalledDB(inCache int, packagePath string) error {
defer func() {
if !success {
_, err := db.Exec("DELETE FROM packages WHERE name = ?", p.Manifest.Info.Name)
_, err := db.Exec("DELETE FROM packages WHERE id = ?", p.Manifest.Info.Id)
if err != nil {
log.Println("Failed to rollback package addition:", err)
}
@@ -220,11 +220,11 @@ func (p *Package) AddToInstalledDB(inCache int, packagePath string) error {
_, err = db.Exec(`
INSERT INTO packages (
query_name, name, version, dependencies, description,
query_name, id, version, dependencies, description,
family, serial, package_d, filename, os, arch, in_cache
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
p.QueryName,
p.Manifest.Info.Name,
p.Manifest.Info.Id,
p.Version,
p.Dependencies,
p.Description,
@@ -251,7 +251,7 @@ func CheckIfPackageInstalled(name string) (bool, error) {
defer db.Close()
var exists bool
err = db.QueryRow("SELECT EXISTS(SELECT 1 FROM packages WHERE name = ?)", name).Scan(&exists)
err = db.QueryRow("SELECT EXISTS(SELECT 1 FROM packages WHERE id = ?)", name).Scan(&exists)
if err != nil {
return false, err
}
@@ -268,7 +268,7 @@ func GetDependencies(name string) ([]string, error) {
var dependenciesRaw string
if err := db.QueryRow("SELECT dependencies FROM packages WHERE name = ?", name).Scan(&dependenciesRaw); err != nil {
if err := db.QueryRow("SELECT dependencies FROM packages WHERE id = ?", name).Scan(&dependenciesRaw); err != nil {
return []string{}, err
}
@@ -293,7 +293,7 @@ func RemoveFromInstalledDB(name string) error {
return err
}
if _, err = db.Exec("DELETE FROM packages WHERE name = ?", name); err != nil {
if _, err = db.Exec("DELETE FROM packages WHERE id = ?", name); err != nil {
return err
}
@@ -313,7 +313,7 @@ func GetPackage(name string) (Package, error) {
defer db.Close()
var packageUrl string
err = db.QueryRow("SELECT query_name, version, package_url, image_url, description, author, author_verified, os, arch, signature, public_key, family, serial, size, dependencies FROM packages WHERE name = ?", name).
err = db.QueryRow("SELECT query_name, version, package_url, image_url, description, author, author_verified, os, arch, signature, public_key, family, serial, size, dependencies FROM packages WHERE id = ?", name).
Scan(
&this.QueryName,
&this.Version,