Author: Nikita Popov (nikic)
Date: 2021-04-07T11:13:08+02:00

Commit: 
https://github.com/php/web-master/commit/723ded37c9e84a2ede50aeb8fabd26e232c595bc
Raw diff: 
https://github.com/php/web-master/commit/723ded37c9e84a2ede50aeb8fabd26e232c595bc.diff

Add up-to-date schema

Some of the tables are not in use though.

Changed paths:
  A  schema.sql
  D  event.sql
  D  note.sql
  D  users.sql
  M  README.md


Diff:

diff --git a/README.md b/README.md
index 7724794..7fc315e 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@ CREATE USER 'nobody'@'localhost';
 GRANT ALL PRIVILEGES ON phpmasterdb.* TO 'nobody'@'localhost';
 
 # Create tables
-mysql -unobody phpmasterdb < users.sql
+mysql -unobody phpmasterdb < schema.sql
 
 # Create user test:test
 INSERT INTO users (username, svnpasswd, cvsaccess) VALUES ('test', 
'$2y$10$iGHyxmfHI62Xyr3DPf8faOPCvmU1UMVMlhJQ/FqooqgPJ3STMHTyG', 1);
diff --git a/event.sql b/event.sql
deleted file mode 100644
index 395f14a..0000000
--- a/event.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-#
-# Table structure for table 'phpcal'
-#
-
-CREATE TABLE phpcal (
-  id int(8) NOT NULL auto_increment,
-  sdato date default NULL,
-  edato date default NULL,
-  recur varchar(12) default NULL,
-  sdesc varchar(32) NOT NULL default '',
-  url varchar(128) default NULL,
-  email varchar(128) NOT NULL default '',
-  ldesc text,
-  tipo int(1) NOT NULL default '0',
-  approved int(1) NOT NULL default '0',
-  app_by varchar(16) default NULL,
-  country char(3) NOT NULL default '',
-  category tinyint(4) NOT NULL default '0',
-  PRIMARY KEY  (id),
-  KEY sdato (sdato),
-  KEY edato (edato),
-  KEY country (country),
-  KEY category (category),
-  FULLTEXT KEY sdesc (sdesc,ldesc,email)
-) TYPE=MyISAM;
-
diff --git a/note.sql b/note.sql
deleted file mode 100644
index e1b9c5c..0000000
--- a/note.sql
+++ /dev/null
@@ -1,42 +0,0 @@
-/* the note table holds notes for the php manual. */
-/* TODO: there is a similar table for php-gtk's manual. it should probably be
-   merged with this one. */
-/* TODO: the user stuff should be linked to the users table so people could
-   edit their own notes. */
-/* TODO: lang should probably be linked to a languages table of some sort.
-   but we're not really using it yet, so maybe we don't want it at all. */
-
-/* used by:
-   main.php.net/entry/user-note.php
-   main.php.net/entry/user-notes-vote.php
-   main.php.net/fetch/user-notes.php
-   main.php.net/manage/user-notes.php
-*/
-
-CREATE TABLE IF NOT EXISTS note (
-  id mediumint(9) NOT NULL auto_increment,
-  sect varchar(80) NOT NULL default '',
-  user varchar(80) default NULL,
-  note text,
-  ts datetime NOT NULL,
-  status varchar(16) default NULL,
-  lang varchar(16) default NULL,
-  votes int(11) NOT NULL default '0',
-  rating int(11) NOT NULL default '0',
-  updated datetime,
-  PRIMARY KEY  (id),
-  KEY idx_sect (sect)
-) ENGINE=MyISAM PACK_KEYS=1;
-
--- New votes table added for keeping track of user notes ratings
-CREATE TABLE IF NOT EXISTS `votes` (
-  `id` int(11) NOT NULL AUTO_INCREMENT,
-  `note_id` mediumint(9) NOT NULL,
-  `ip` bigint(20) unsigned NOT NULL DEFAULT '0',
-  `hostip` bigint(20) unsigned NOT NULL DEFAULT '0',
-  `ts` datetime NOT NULL,
-  `vote` tinyint(1) unsigned NOT NULL DEFAULT '0',
-  PRIMARY KEY (`id`),
-  KEY `note_id` (`note_id`,`ip`,`vote`),
-  KEY `hostip` (`hostip`)
-) ENGINE=MyISAM AUTO_INCREMENT=1;
diff --git a/schema.sql b/schema.sql
new file mode 100644
index 0000000..b378fbc
--- /dev/null
+++ b/schema.sql
@@ -0,0 +1,284 @@
+/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
+/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
+/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
+/*!40101 SET NAMES utf8mb4 */;
+/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
+/*!40103 SET TIME_ZONE='+00:00' */;
+/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
+/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, 
FOREIGN_KEY_CHECKS=0 */;
+/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
+/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
+
+--
+-- Table structure for table `auth`
+--
+
+DROP TABLE IF EXISTS `auth`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `auth` (
+  `authid` varchar(64) NOT NULL DEFAULT '',
+  `authkey` varchar(255) NOT NULL DEFAULT '',
+  `cburl` varchar(255) DEFAULT NULL,
+  `owneremail` varchar(255) DEFAULT NULL,
+  PRIMARY KEY (`authid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `country`
+--
+
+DROP TABLE IF EXISTS `country`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `country` (
+  `id` char(3) NOT NULL DEFAULT '',
+  `alpha2` char(2) NOT NULL DEFAULT '',
+  `name` varchar(255) NOT NULL DEFAULT '',
+  `lat` int(8) NOT NULL DEFAULT 0,
+  `lon` int(8) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `mirrors`
+--
+
+DROP TABLE IF EXISTS `mirrors`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `mirrors` (
+  `id` int(8) NOT NULL AUTO_INCREMENT,
+  `mirrortype` int(1) NOT NULL DEFAULT 1,
+  `cc` char(3) NOT NULL DEFAULT '',
+  `lang` varchar(5) NOT NULL DEFAULT '',
+  `hostname` varchar(40) NOT NULL DEFAULT '',
+  `cname` varchar(80) NOT NULL DEFAULT '',
+  `maintainer` varchar(255) NOT NULL DEFAULT '',
+  `providername` varchar(255) NOT NULL DEFAULT '',
+  `providerurl` varchar(255) NOT NULL DEFAULT '',
+  `has_stats` int(1) NOT NULL DEFAULT 0,
+  `has_search` int(1) NOT NULL DEFAULT 0,
+  `active` int(1) NOT NULL DEFAULT 0,
+  `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `lastedited` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `lastupdated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `lastchecked` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `phpversion` varchar(16) NOT NULL DEFAULT '',
+  `acmt` text DEFAULT NULL,
+  `ocmt` text DEFAULT NULL,
+  `maintainer2` varchar(255) NOT NULL DEFAULT '',
+  `load_balanced` varchar(4) DEFAULT NULL,
+  `ext_avail` text DEFAULT NULL,
+  `local_hostname` varchar(255) DEFAULT NULL,
+  `ipv4_addr` varchar(55) DEFAULT NULL,
+  `ipv6_addr` varchar(55) DEFAULT NULL,
+  PRIMARY KEY (`id`),
+  UNIQUE KEY `hostname` (`hostname`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `note`
+--
+
+DROP TABLE IF EXISTS `note`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `note` (
+  `id` mediumint(9) NOT NULL AUTO_INCREMENT,
+  `sect` varchar(80) NOT NULL DEFAULT '',
+  `user` varchar(80) DEFAULT NULL,
+  `note` text DEFAULT NULL,
+  `ts` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `status` varchar(16) DEFAULT NULL,
+  `lang` varchar(16) DEFAULT NULL,
+  `votes` int(11) NOT NULL DEFAULT 0,
+  `rating` int(11) NOT NULL DEFAULT 0,
+  `updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  PRIMARY KEY (`id`),
+  KEY `idx_sect` (`sect`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 PACK_KEYS=1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `phpcal`
+--
+
+DROP TABLE IF EXISTS `phpcal`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `phpcal` (
+  `id` int(8) NOT NULL AUTO_INCREMENT,
+  `sdato` date DEFAULT NULL,
+  `edato` date DEFAULT NULL,
+  `recur` varchar(12) DEFAULT NULL,
+  `sdesc` varchar(32) NOT NULL DEFAULT '',
+  `url` varchar(128) DEFAULT NULL,
+  `email` varchar(128) NOT NULL DEFAULT '',
+  `ldesc` text DEFAULT NULL,
+  `tipo` int(1) NOT NULL DEFAULT 0,
+  `approved` int(1) NOT NULL DEFAULT 0,
+  `app_by` varchar(16) DEFAULT NULL,
+  `country` char(3) NOT NULL DEFAULT '',
+  `category` tinyint(4) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`),
+  KEY `sdato` (`sdato`),
+  KEY `edato` (`edato`),
+  KEY `country` (`country`),
+  KEY `category` (`category`),
+  FULLTEXT KEY `sdesc` (`sdesc`,`ldesc`,`email`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `sites`
+--
+
+DROP TABLE IF EXISTS `sites`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `sites` (
+  `cat` varchar(48) NOT NULL DEFAULT '',
+  `name` varchar(80) NOT NULL DEFAULT '',
+  `url` varchar(80) NOT NULL DEFAULT '',
+  `email` varchar(60) NOT NULL DEFAULT '',
+  `password` varchar(16) NOT NULL DEFAULT '',
+  `approved` enum('N','Y') NOT NULL DEFAULT 'N',
+  `approved_by` varchar(20) NOT NULL DEFAULT '',
+  `note` text DEFAULT NULL,
+  `ts` datetime DEFAULT NULL,
+  PRIMARY KEY (`name`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 PACK_KEYS=1;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `tokens`
+--
+
+DROP TABLE IF EXISTS `tokens`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `tokens` (
+  `tokid` varchar(64) NOT NULL DEFAULT '',
+  `generatedfor` varchar(64) NOT NULL DEFAULT '',
+  `username` varchar(16) NOT NULL DEFAULT '',
+  `expires` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE 
current_timestamp(),
+  PRIMARY KEY (`tokid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users`
+--
+
+DROP TABLE IF EXISTS `users`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users` (
+  `userid` int(11) NOT NULL AUTO_INCREMENT,
+  `svnpasswd` varchar(60) NOT NULL DEFAULT '',
+  `name` varchar(255) NOT NULL DEFAULT '',
+  `email` varchar(255) NOT NULL DEFAULT '',
+  `username` varchar(16) DEFAULT NULL,
+  `cvsaccess` int(1) NOT NULL DEFAULT 0,
+  `spamprotect` int(1) NOT NULL DEFAULT 1,
+  `forgot` varchar(32) DEFAULT NULL,
+  `dns_allow` int(1) NOT NULL DEFAULT 1,
+  `dns_type` varchar(5) NOT NULL DEFAULT 'NONE',
+  `dns_target` varchar(255) NOT NULL DEFAULT '',
+  `last_commit` datetime DEFAULT NULL,
+  `num_commits` int(11) NOT NULL DEFAULT 0,
+  `verified` int(1) NOT NULL DEFAULT 0,
+  `use_sa` int(11) DEFAULT 5,
+  `greylist` int(11) NOT NULL DEFAULT 0,
+  `enable` int(1) NOT NULL DEFAULT 0,
+  `pchanged` int(11) DEFAULT 0,
+  `ssh_keys` text DEFAULT NULL,
+  PRIMARY KEY (`userid`),
+  UNIQUE KEY `email` (`email`),
+  UNIQUE KEY `username` (`username`),
+  FULLTEXT KEY `name` (`name`,`email`,`username`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users_cvs`
+--
+
+DROP TABLE IF EXISTS `users_cvs`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users_cvs` (
+  `userid` int(11) NOT NULL DEFAULT 0,
+  `cvsuser` char(16) NOT NULL DEFAULT '',
+  `approved` tinyint(1) NOT NULL DEFAULT 0,
+  PRIMARY KEY (`userid`),
+  UNIQUE KEY `cvsuser` (`cvsuser`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users_note`
+--
+
+DROP TABLE IF EXISTS `users_note`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users_note` (
+  `noteid` int(11) NOT NULL AUTO_INCREMENT,
+  `userid` int(11) NOT NULL DEFAULT 0,
+  `entered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `note` text DEFAULT NULL,
+  PRIMARY KEY (`noteid`),
+  FULLTEXT KEY `note` (`note`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `users_profile`
+--
+
+DROP TABLE IF EXISTS `users_profile`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `users_profile` (
+  `userid` int(11) NOT NULL,
+  `markdown` text NOT NULL,
+  `html` text NOT NULL,
+  PRIMARY KEY (`userid`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+/*!40101 SET character_set_client = @saved_cs_client */;
+
+--
+-- Table structure for table `votes`
+--
+
+DROP TABLE IF EXISTS `votes`;
+/*!40101 SET @saved_cs_client     = @@character_set_client */;
+/*!40101 SET character_set_client = utf8 */;
+CREATE TABLE `votes` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `note_id` mediumint(9) NOT NULL,
+  `ip` bigint(20) unsigned NOT NULL DEFAULT 0,
+  `hostip` bigint(20) unsigned NOT NULL DEFAULT 0,
+  `ts` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+  `vote` tinyint(1) unsigned NOT NULL DEFAULT 0,
+  PRIMARY KEY (`id`),
+  KEY `note_id` (`note_id`,`ip`,`vote`),
+  KEY `hostip` (`hostip`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+/*!40101 SET character_set_client = @saved_cs_client */;
+/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
+
+/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
+/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
+/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
+/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
+/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
+/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
+/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
+
+-- Dump completed on 2021-04-07  8:26:18
diff --git a/users.sql b/users.sql
deleted file mode 100644
index e7f85c2..0000000
--- a/users.sql
+++ /dev/null
@@ -1,69 +0,0 @@
-/* user-related tables */
-
-/* various things that may hang off the users table in the future:
-   * ownership of bugs and bug comments
-   * 'subscription' to bugs
-   * 'subscription' to notes updates of manual sections
-   * cvs acls
-*/
-
-/* the users table is the main one. it contains the name, email, and
-   crypted password for each user. the password is crypted using the
-   standard unix DES-based crypt (for interop with cvs) */
-/* we have a full-text index on name, username and email for searching, and we
-   require unique email addresses for each account. the username must also
-   be unique (when present). */
-/* a user will be able to change the email address associated with
-   their account if they know the password. */
-/* the cvsaccess field requires more thought. we might want to expand
-   it to a more general flags field or something. it already implies
-   an email alias in addition to cvs access. */
-/* dns_allow states whether or not a user gets a <username>.people.php.net 
hostname.
-   Abusive users can have their dns privilidges revoked using this field.
-   dns_type is (currently) one of 'A','NS','CNAME' or 'NONE'.
-   dns_target is dependent on dns_type and should be self explanatory */
-CREATE TABLE users (
-  userid int(11) NOT NULL auto_increment,
-  passwd varchar(16) NOT NULL default '',
-  svnpasswd varchar(60) NOT NULL default '',
-  md5passwd varchar(32) NOT NULL default '',
-  name varchar(255) NOT NULL default '',
-  email varchar(255) NOT NULL default '',
-  username varchar(16) default NULL,
-  cvsaccess int(1) NOT NULL default '0',
-  spamprotect int(1) NOT NULL default '1',
-  forgot varchar(32) default NULL,
-  dns_allow int(1) NOT NULL default '1',
-  dns_type varchar(5) NOT NULL default 'NONE',
-  dns_target varchar(255) NOT NULL default '',
-  last_commit datetime default NULL,
-  num_commits int(11) NOT NULL default '0',
-  verified int(1) NOT NULL default '0',
-  use_sa int(11) default '5',
-  greylist int(11) NOT NULL default '0',
-  enable int(1) NOT NULL default '0',
-  pchanged int(11) default '0',
-  ssh_keys TEXT default NULL,
-  PRIMARY KEY  (userid),
-  UNIQUE KEY email (email),
-  UNIQUE KEY username (username),
-  FULLTEXT KEY name (name,email,username)
-) ENGINE=MyISAM;
-
-/* the user_note table just contains notes about each user. */
-CREATE TABLE users_note (
-  noteid int(11) NOT NULL auto_increment,
-  userid int(11) NOT NULL default '0',
-  entered datetime NOT NULL,
-  note text,
-  PRIMARY KEY  (noteid),
-  FULLTEXT KEY note (note)
-) ENGINE=MyISAM;
-
-/* the users_profile table contains up to one profile row for each user */
-CREATE TABLE users_profile (
-  userid int(11) NOT NULL,
-  markdown TEXT NOT NULL,
-  html TEXT NOT NULL,
-  PRIMARY KEY (userid)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- 
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to