Database customization
Customization of the database with licenses and license conflicts.
The LPVS database consists of several tables. You have to pay attention to two tables: lpvs_license_list
and lpvs_license_conflicts
. These tables are used to store information about licenses and their conflicts
respectively. Here's a brief description of each table.
Table lpvs_license_list
This table stores license information.
CREATE TABLE IF NOT EXISTS lpvs_license_list (
id bigint NOT NULL AUTO_INCREMENT,
license_usage varchar(255) DEFAULT NULL,
license_name varchar(255) NOT NULL,
license_spdx varchar(255) NOT NULL,
license_alternative_names longtext DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE (license_spdx)
);
The meanings of each field are as follows:
- id
: Unique identifier which auto increments.
- license_usage
: Indicates the possibility to use the license in your code and could be PERMITTED
, RESTRICTED
, PROHIBITED
, or UNREVIEWED
.
- license_name
: Name of the license.
- license_spdx
: SPDX identifier of the license.
- license_alternative_names
: Alternative names of the license.
Table lpvs_license_conflicts
This table stores license conflicts information.
CREATE TABLE IF NOT EXISTS lpvs_license_conflicts (
id bigint NOT NULL AUTO_INCREMENT,
conflict_license_id bigint NOT NULL,
repository_license_id bigint NOT NULL,
PRIMARY KEY (id),
KEY (conflict_license_id),
KEY (repository_license_id),
FOREIGN KEY (conflict_license_id) REFERENCES lpvs_license_list (id),
FOREIGN KEY (repository_license_id) REFERENCES lpvs_license_list (id)
);
The meanings of each field are as follows:
- id
: Unique identifier which auto increments.
- conflict_license_id
: ID of the conflicting license.
- repository_license_id
: License ID of the repository.
Warning
Both tables lpvs_license_list
and lpvs_license_conflicts
should be filled by the user manually.
When a new license is detected by LPVS, it will be added to the table lpvs_license_list
with
license_usage
status set to UNREVIEWED
, indicating that it has not been reviewed yet.
Info
Sample MySQL dump file is located in the repository and can be used as a reference.