New database schema need to change all code files
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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"`
|
||||
|
||||
@@ -1,26 +1,34 @@
|
||||
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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user