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(
 | 
			
		||||
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