New database schema need to change all code files
This commit is contained in:
@@ -61,7 +61,7 @@ func init() {
|
|||||||
log.Fatal(db)
|
log.Fatal(db)
|
||||||
}
|
}
|
||||||
defer db.Close()
|
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 {
|
} else {
|
||||||
log.Fatal(err)
|
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 {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -509,7 +509,7 @@ var listCmd = &cobra.Command{
|
|||||||
log.Fatal(err)
|
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 {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
@@ -546,14 +546,14 @@ var searchCmd = &cobra.Command{
|
|||||||
var rows *sql.Rows
|
var rows *sql.Rows
|
||||||
|
|
||||||
if len(args) > 0 {
|
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 {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
defer rows.Close()
|
defer rows.Close()
|
||||||
} else {
|
} 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 {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ package configs
|
|||||||
type Manifest struct {
|
type Manifest struct {
|
||||||
Info struct {
|
Info struct {
|
||||||
Name string `toml:"name"`
|
Name string `toml:"name"`
|
||||||
|
Id string `toml:"id"`
|
||||||
Version string `toml:"version"`
|
Version string `toml:"version"`
|
||||||
Description string `toml:"description"`
|
Description string `toml:"description"`
|
||||||
Dependencies []string `toml:"dependencies"`
|
Dependencies []string `toml:"dependencies"`
|
||||||
|
|||||||
@@ -1,26 +1,34 @@
|
|||||||
CREATE TABLE packages (
|
CREATE TABLE packages (
|
||||||
|
id TEXT NOT NULL UNIQUE PRIMARY KEY,
|
||||||
query_name TEXT NOT NULL,
|
query_name TEXT NOT NULL,
|
||||||
image_url TEXT NOT NULL,
|
|
||||||
name TEXT NOT NULL UNIQUE PRIMARY KEY,
|
|
||||||
version TEXT NOT NULL,
|
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,
|
public_key BLOB NOT NULL,
|
||||||
signature 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 TEXT NOT NULL,
|
||||||
author_verified INTEGER NOT NULL DEFAULT 0,
|
author_verified INTEGER NOT NULL DEFAULT 0,
|
||||||
family TEXT NOT NULL,
|
|
||||||
arch TEXT NOT NULL,
|
arch TEXT NOT NULL,
|
||||||
os TEXT NOT NULL,
|
os TEXT NOT NULL,
|
||||||
size INTEGER NOT NULL DEFAULT 0,
|
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 (
|
CREATE TABLE IF NOT EXISTS packages (
|
||||||
query_name TEXT NOT NULL,
|
query_name TEXT NOT NULL,
|
||||||
name TEXT NOT NULL UNIQUE PRIMARY KEY,
|
id TEXT NOT NULL UNIQUE PRIMARY KEY,
|
||||||
version TEXT NOT NULL,
|
version TEXT NOT NULL,
|
||||||
dependencies TEXT NOT NULL DEFAULT '',
|
dependencies TEXT NOT NULL DEFAULT '',
|
||||||
description TEXT NOT NULL,
|
description TEXT NOT NULL,
|
||||||
|
|||||||
@@ -211,7 +211,7 @@ func (p *Package) AddToInstalledDB(inCache int, packagePath string) error {
|
|||||||
|
|
||||||
defer func() {
|
defer func() {
|
||||||
if !success {
|
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 {
|
if err != nil {
|
||||||
log.Println("Failed to rollback package addition:", err)
|
log.Println("Failed to rollback package addition:", err)
|
||||||
}
|
}
|
||||||
@@ -220,11 +220,11 @@ func (p *Package) AddToInstalledDB(inCache int, packagePath string) error {
|
|||||||
|
|
||||||
_, err = db.Exec(`
|
_, err = db.Exec(`
|
||||||
INSERT INTO packages (
|
INSERT INTO packages (
|
||||||
query_name, name, version, dependencies, description,
|
query_name, id, version, dependencies, description,
|
||||||
family, serial, package_d, filename, os, arch, in_cache
|
family, serial, package_d, filename, os, arch, in_cache
|
||||||
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`,
|
||||||
p.QueryName,
|
p.QueryName,
|
||||||
p.Manifest.Info.Name,
|
p.Manifest.Info.Id,
|
||||||
p.Version,
|
p.Version,
|
||||||
p.Dependencies,
|
p.Dependencies,
|
||||||
p.Description,
|
p.Description,
|
||||||
@@ -251,7 +251,7 @@ func CheckIfPackageInstalled(name string) (bool, error) {
|
|||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
var exists bool
|
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 {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
@@ -268,7 +268,7 @@ func GetDependencies(name string) ([]string, error) {
|
|||||||
|
|
||||||
var dependenciesRaw string
|
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
|
return []string{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -293,7 +293,7 @@ func RemoveFromInstalledDB(name string) error {
|
|||||||
return err
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -313,7 +313,7 @@ func GetPackage(name string) (Package, error) {
|
|||||||
defer db.Close()
|
defer db.Close()
|
||||||
|
|
||||||
var packageUrl string
|
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(
|
Scan(
|
||||||
&this.QueryName,
|
&this.QueryName,
|
||||||
&this.Version,
|
&this.Version,
|
||||||
|
|||||||
Reference in New Issue
Block a user