docs: 完善安装文档并更新数据库脚本
- 详细说明安装步骤,包括环境准备、数据库配置和权限设置 - 更新数据库脚本以使用动态数据库名替代硬编码 - 添加Windows系统下的权限设置说明 - 补充Web服务器配置和初始化管理员账号指引
This commit is contained in:
289
README.md
289
README.md
@@ -45,27 +45,282 @@ app2/
|
|||||||
- Node.js (可选,用于前端资源构建)
|
- Node.js (可选,用于前端资源构建)
|
||||||
- Web 服务器(如 Apache 或 Nginx)
|
- Web 服务器(如 Apache 或 Nginx)
|
||||||
|
|
||||||
## 安装步骤
|
## 快速启动指南
|
||||||
1. 创建项目目录并将代码复制到该目录下。
|
对于有经验的开发者,可按照以下步骤快速部署:
|
||||||
2. 修改 `config.php` 文件,配置 MySQL 数据库信息、管理员账号和邮件服务设置。
|
```cmd
|
||||||
3. 安装依赖包(将自动创建 `vendor` 目录并安装 PHPMailer 等必要依赖):
|
# 1. 克隆项目并进入目录
|
||||||
```bash
|
git clone <repository-url> app2
|
||||||
composer install
|
cd app2
|
||||||
|
|
||||||
|
# 2. 创建并配置环境文件
|
||||||
|
copy config.example.php config.php
|
||||||
|
# 编辑config.php设置数据库和邮件信息
|
||||||
|
|
||||||
|
# 3. 创建数据库并导入结构
|
||||||
|
mysql -u root -p -e "CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
|
||||||
|
mysql -u root -p your_db_name < app_store.sql
|
||||||
|
|
||||||
|
# 4. 安装依赖并设置权限
|
||||||
|
composer install
|
||||||
|
icacls files /grant Users:(OI)(CI)W
|
||||||
|
icacls images /grant Users:(OI)(CI)W
|
||||||
|
|
||||||
|
# 5. 启动开发服务器
|
||||||
|
php -S localhost:8000
|
||||||
|
```
|
||||||
|
访问 http://localhost:8000 开始使用,管理员后台地址:http://localhost:8000/admin
|
||||||
|
|
||||||
|
## 详细安装教程
|
||||||
|
|
||||||
|
### 1. 环境准备
|
||||||
|
确保您的系统满足以下要求:
|
||||||
|
- PHP 7.4+(推荐PHP 8.0+)
|
||||||
|
- MySQL 5.7+ 或 MariaDB 10.2+
|
||||||
|
- Composer(PHP依赖管理工具)
|
||||||
|
- Web服务器(Apache/Nginx/IIS)或PHP内置服务器
|
||||||
|
- Git(可选,用于版本控制)
|
||||||
|
|
||||||
|
#### 检查PHP环境
|
||||||
|
打开命令提示符,输入以下命令验证PHP版本:
|
||||||
|
```cmd
|
||||||
|
php -v
|
||||||
|
# 应显示PHP 7.4.0或更高版本
|
||||||
|
|
||||||
|
# 检查必要扩展
|
||||||
|
php -m | findstr /i "mysqli pdo_mysql json curl fileinfo"
|
||||||
|
# 确保以上扩展均已安装
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 获取项目代码
|
||||||
|
选择以下任一方式获取代码:
|
||||||
|
|
||||||
|
#### 方式一:使用Git克隆(推荐)
|
||||||
|
```cmd
|
||||||
|
git clone <repository-url> app2
|
||||||
|
cd app2
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 方式二:手动下载
|
||||||
|
1. 从项目仓库下载ZIP压缩包
|
||||||
|
2. 解压到本地目录(如 `d:\app2`)
|
||||||
|
3. 打开命令提示符,进入项目目录:
|
||||||
|
```cmd
|
||||||
|
cd d:\app2
|
||||||
```
|
```
|
||||||
4. 登录 MySQL 数据库,创建名为'awa'的数据库:
|
|
||||||
|
### 3. 数据库配置
|
||||||
|
|
||||||
|
#### 创建数据库
|
||||||
|
1. 登录MySQL控制台:
|
||||||
|
```cmd
|
||||||
|
mysql -u root -p
|
||||||
|
```
|
||||||
|
2. 创建数据库(将`your_db_name`替换为您喜欢的数据库名称):
|
||||||
```sql
|
```sql
|
||||||
CREATE DATABASE awa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
CREATE DATABASE your_db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
||||||
```
|
exit
|
||||||
5. 执行 `app_store.sql` 文件导入数据库结构:
|
|
||||||
```sql
|
|
||||||
mysql -u your_username -p awa < app_store.sql
|
|
||||||
```
|
|
||||||
6. 创建 `files` 和 `images` 目录,并设置正确权限:
|
|
||||||
```bash
|
|
||||||
mkdir -p files images
|
|
||||||
chmod 755 files images
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 导入数据库结构
|
||||||
|
```cmd
|
||||||
|
mysql -u root -p your_db_name < app_store.sql
|
||||||
|
```
|
||||||
|
> **注意**:请确保在导入前替换命令中的`your_db_name`为您实际创建的数据库名称
|
||||||
|
|
||||||
|
### 4. 应用配置
|
||||||
|
|
||||||
|
#### 创建配置文件
|
||||||
|
如果项目中存在`config.example.php`:
|
||||||
|
```cmd
|
||||||
|
copy config.example.php config.php
|
||||||
|
```
|
||||||
|
如果不存在,请手动创建`config.php`文件并添加以下内容:
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
// 数据库配置
|
||||||
|
define('DB_HOST', 'localhost');
|
||||||
|
define('DB_USER', 'root');
|
||||||
|
define('DB_PASS', 'your_database_password');
|
||||||
|
define('DB_NAME', 'your_db_name');
|
||||||
|
|
||||||
|
define('APP_URL', 'http://localhost'); // 应用基础URL
|
||||||
|
define('ADMIN_EMAIL', 'admin@example.com'); // 默认管理员邮箱
|
||||||
|
define('ADMIN_PASSWORD', 'admin123'); // 默认管理员密码(首次登录后必须修改)
|
||||||
|
|
||||||
|
// 邮件服务配置(用于开发者注册验证)
|
||||||
|
define('SMTP_HOST', 'smtp.example.com');
|
||||||
|
define('SMTP_PORT', 465);
|
||||||
|
define('SMTP_USER', 'your_email@example.com');
|
||||||
|
define('SMTP_PASS', 'your_email_password');
|
||||||
|
define('SMTP_ENCRYPTION', 'ssl'); // 通常为ssl或tls
|
||||||
|
|
||||||
|
define('DEBUG_MODE', true); // 开发环境设为true,生产环境设为false
|
||||||
|
?>
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 配置参数说明
|
||||||
|
| 参数 | 说明 | 示例值 |
|
||||||
|
|------|------|--------|
|
||||||
|
| DB_HOST | 数据库主机地址 | localhost |
|
||||||
|
| DB_USER | 数据库用户名 | root |
|
||||||
|
| DB_PASS | 数据库密码 | your_actual_password |
|
||||||
|
| DB_NAME | 数据库名称 | app_store |
|
||||||
|
| APP_URL | 应用访问URL | http://localhost/app2 |
|
||||||
|
| DEBUG_MODE | 调试模式开关 | true/false |
|
||||||
|
|
||||||
|
### 5. 安装依赖
|
||||||
|
使用Composer安装项目依赖:
|
||||||
|
```cmd
|
||||||
|
composer install
|
||||||
|
```
|
||||||
|
> 如果没有安装Composer,请先从 https://getcomposer.org/ 下载并安装
|
||||||
|
|
||||||
|
### 6. 设置目录权限
|
||||||
|
项目需要对以下目录有写入权限:
|
||||||
|
- `files/`:存储上传的应用文件
|
||||||
|
- `images/`:存储应用截图和图标
|
||||||
|
|
||||||
|
#### 图形界面方式(推荐)
|
||||||
|
1. 在文件资源管理器中找到项目目录
|
||||||
|
2. 右键点击`files`文件夹,选择**属性**
|
||||||
|
3. 切换到**安全**选项卡,点击**编辑**
|
||||||
|
4. 选择当前用户,勾选**写入**权限,点击**确定**
|
||||||
|
5. 对`images`文件夹执行相同操作
|
||||||
|
|
||||||
|
#### 命令行方式
|
||||||
|
```cmd
|
||||||
|
icacls files /grant Users:(OI)(CI)W
|
||||||
|
icacls images /grant Users:(OI)(CI)W
|
||||||
|
```
|
||||||
|
|
||||||
|
### 7. 配置Web服务器
|
||||||
|
|
||||||
|
#### 选项A:使用PHP内置开发服务器(推荐用于开发)
|
||||||
|
```cmd
|
||||||
|
php -S localhost:8000
|
||||||
|
```
|
||||||
|
然后在浏览器中访问:http://localhost:8000
|
||||||
|
|
||||||
|
#### 选项B:配置Apache服务器
|
||||||
|
1. 确保`mod_rewrite`模块已启用
|
||||||
|
2. 创建虚拟主机配置:
|
||||||
|
```apache
|
||||||
|
<VirtualHost *:80>
|
||||||
|
ServerName appstore.local
|
||||||
|
DocumentRoot "d:/app2"
|
||||||
|
<Directory "d:/app2">
|
||||||
|
Options Indexes FollowSymLinks
|
||||||
|
AllowOverride All
|
||||||
|
Require all granted
|
||||||
|
</Directory>
|
||||||
|
</VirtualHost>
|
||||||
|
```
|
||||||
|
3. 修改`hosts`文件添加:`127.0.0.1 appstore.local`
|
||||||
|
4. 重启Apache,访问 http://appstore.local
|
||||||
|
|
||||||
|
#### 选项C:配置Nginx服务器
|
||||||
|
```nginx
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name appstore.local;
|
||||||
|
root d:/app2;
|
||||||
|
index index.php;
|
||||||
|
|
||||||
|
location / {
|
||||||
|
try_files $uri $uri/ /index.php?$query_string;
|
||||||
|
}
|
||||||
|
|
||||||
|
location ~ \.php$ {
|
||||||
|
fastcgi_pass 127.0.0.1:9000;
|
||||||
|
fastcgi_index index.php;
|
||||||
|
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||||
|
include fastcgi_params;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 8. 首次使用与安全设置
|
||||||
|
|
||||||
|
#### 管理员账号初始化
|
||||||
|
1. 访问管理员登录页面:http://localhost:8000/admin/login.php
|
||||||
|
2. 使用默认账号登录:
|
||||||
|
- 用户名:`admin@example.com`(来自config.php中的ADMIN_EMAIL)
|
||||||
|
- 密码:`admin123`(来自config.php中的ADMIN_PASSWORD)
|
||||||
|
3. **重要**:登录后立即点击右上角头像,选择**修改密码**,设置强密码
|
||||||
|
|
||||||
|
#### 安全建议
|
||||||
|
- 生产环境中设置`define('DEBUG_MODE', false);`
|
||||||
|
- 定期备份数据库
|
||||||
|
- 不要将`config.php`提交到版本控制系统
|
||||||
|
- 保持PHP和所有依赖包为最新安全版本
|
||||||
|
|
||||||
|
## 使用教程
|
||||||
|
|
||||||
|
### 开发者功能
|
||||||
|
|
||||||
|
#### 注册开发者账号
|
||||||
|
1. 访问开发者注册页面:http://localhost:8000/developer/register.php
|
||||||
|
2. 填写注册信息,提交后系统会发送验证邮件
|
||||||
|
3. 点击邮件中的验证链接激活账号
|
||||||
|
|
||||||
|
#### 上传新应用
|
||||||
|
1. 登录开发者后台:http://localhost:8000/developer/login.php
|
||||||
|
2. 点击**上传新应用**按钮
|
||||||
|
3. 填写应用信息:
|
||||||
|
- 应用名称、描述、版本号
|
||||||
|
- 选择应用类别和年龄分级
|
||||||
|
- 上传应用图标(推荐尺寸:512x512px)
|
||||||
|
- 上传应用截图(最多5张)
|
||||||
|
- 上传应用安装包(支持.zip格式)
|
||||||
|
4. 点击**提交审核**,等待管理员审核
|
||||||
|
|
||||||
|
#### 管理应用版本
|
||||||
|
1. 在开发者后台点击应用名称进入管理页面
|
||||||
|
2. 点击**发布新版本**添加应用更新
|
||||||
|
3. 填写版本变更说明和更新内容
|
||||||
|
4. 上传新版本安装包
|
||||||
|
|
||||||
|
### 管理员功能
|
||||||
|
|
||||||
|
#### 应用审核
|
||||||
|
1. 登录管理员后台:http://localhost:8000/admin/login.php
|
||||||
|
2. 点击**应用审核**菜单
|
||||||
|
3. 查看待审核应用列表,点击**查看详情**
|
||||||
|
4. 审核应用信息和安装包,点击**通过**或**拒绝**并填写反馈
|
||||||
|
|
||||||
|
#### 管理应用分类
|
||||||
|
1. 在管理员后台点击**分类管理**
|
||||||
|
2. 可以添加、编辑或删除应用分类
|
||||||
|
3. 设置分类排序和显示状态
|
||||||
|
|
||||||
|
#### 系统信息查看
|
||||||
|
1. 在管理员后台点击**系统信息**
|
||||||
|
2. 查看服务器环境、PHP配置和数据库状态
|
||||||
|
3. 监控应用总数、开发者数量和文件存储使用情况
|
||||||
|
|
||||||
|
### API使用指南
|
||||||
|
|
||||||
|
#### 获取应用列表
|
||||||
|
```http
|
||||||
|
GET /api.php?action=list&page=1&limit=10
|
||||||
|
```
|
||||||
|
返回JSON格式的应用列表数据
|
||||||
|
|
||||||
|
#### 获取应用详情
|
||||||
|
```http
|
||||||
|
GET /api.php?action=app&id=1
|
||||||
|
```
|
||||||
|
返回指定ID的应用详细信息
|
||||||
|
|
||||||
|
#### API响应格式
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"success": true,
|
||||||
|
"data": {},
|
||||||
|
"message": "操作成功"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## 功能说明
|
## 功能说明
|
||||||
- **首页**:展示最新 App 列表,包含基本信息和评分。
|
- **首页**:展示最新 App 列表,包含基本信息和评分。
|
||||||
- **App 信息页**:显示 App 详细信息、版本历史、预览图片和用户评价,支持用户评分。
|
- **App 信息页**:显示 App 详细信息、版本历史、预览图片和用户评价,支持用户评分。
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
-- 创建数据库
|
-- 创建数据库
|
||||||
-- CREATE DATABASE IF NOT EXISTS app_store;
|
-- CREATE DATABASE IF NOT EXISTS app_store;
|
||||||
USE awa;
|
|
||||||
|
|
||||||
-- 创建APP表
|
-- 创建APP表
|
||||||
CREATE TABLE IF NOT EXISTS apps (
|
CREATE TABLE IF NOT EXISTS apps (
|
||||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||||
@@ -104,41 +102,41 @@ CREATE TABLE IF NOT EXISTS app_categories (
|
|||||||
);
|
);
|
||||||
|
|
||||||
-- 修改评价表,支持文字评论并关联用户
|
-- 修改评价表,支持文字评论并关联用户
|
||||||
SET @exist_ip_address = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'ip_address');
|
SET @exist_ip_address = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'ip_address');
|
||||||
SET @sql = IF(@exist_ip_address > 0, 'ALTER TABLE reviews DROP COLUMN ip_address', 'SELECT 1');
|
SET @sql = IF(@exist_ip_address > 0, 'ALTER TABLE reviews DROP COLUMN ip_address', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
-- 检查并删除unique_review索引(如果存在)
|
-- 检查并删除unique_review索引(如果存在)
|
||||||
SET @exist_unique_review = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND INDEX_NAME = 'unique_review');
|
SET @exist_unique_review = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND INDEX_NAME = 'unique_review');
|
||||||
SET @sql = IF(@exist_unique_review > 0, 'ALTER TABLE reviews DROP INDEX unique_review', 'SELECT 1');
|
SET @sql = IF(@exist_unique_review > 0, 'ALTER TABLE reviews DROP INDEX unique_review', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
-- 检查并添加user_id列(如果不存在)
|
-- 检查并添加user_id列(如果不存在)
|
||||||
SET @exist_user_id = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'user_id');
|
SET @exist_user_id = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'user_id');
|
||||||
SET @sql = IF(@exist_user_id = 0, 'ALTER TABLE reviews ADD COLUMN user_id INT', 'SELECT 1');
|
SET @sql = IF(@exist_user_id = 0, 'ALTER TABLE reviews ADD COLUMN user_id INT', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
-- 检查并添加comment列(如果不存在)
|
-- 检查并添加comment列(如果不存在)
|
||||||
SET @exist_comment = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'comment');
|
SET @exist_comment = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'comment');
|
||||||
SET @sql = IF(@exist_comment = 0, 'ALTER TABLE reviews ADD COLUMN comment TEXT', 'SELECT 1');
|
SET @sql = IF(@exist_comment = 0, 'ALTER TABLE reviews ADD COLUMN comment TEXT', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
|
|
||||||
-- 添加外键约束(如果不存在)
|
-- 添加外键约束(如果不存在)
|
||||||
SET @exist_fk = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'user_id' AND CONSTRAINT_NAME = 'fk_reviews_users');
|
SET @exist_fk = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND COLUMN_NAME = 'user_id' AND CONSTRAINT_NAME = 'fk_reviews_users');
|
||||||
SET @sql = IF(@exist_fk = 0, 'ALTER TABLE reviews ADD CONSTRAINT fk_reviews_users FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL', 'SELECT 1');
|
SET @sql = IF(@exist_fk = 0, 'ALTER TABLE reviews ADD CONSTRAINT fk_reviews_users FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE SET NULL', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
DEALLOCATE PREPARE stmt;
|
DEALLOCATE PREPARE stmt;
|
||||||
-- 检查并添加唯一索引(如果不存在)
|
-- 检查并添加唯一索引(如果不存在)
|
||||||
SET @exist_unique_index = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = 'awa' AND TABLE_NAME = 'reviews' AND INDEX_NAME = 'unique_user_app_review');
|
SET @exist_unique_index = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.STATISTICS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'reviews' AND INDEX_NAME = 'unique_user_app_review');
|
||||||
SET @sql = IF(@exist_unique_index = 0, 'ALTER TABLE reviews ADD UNIQUE KEY unique_user_app_review (user_id, app_id)', 'SELECT 1');
|
SET @sql = IF(@exist_unique_index = 0, 'ALTER TABLE reviews ADD UNIQUE KEY unique_user_app_review (user_id, app_id)', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
@@ -267,7 +265,7 @@ CREATE TABLE IF NOT EXISTS user_feedback (
|
|||||||
);
|
);
|
||||||
|
|
||||||
-- 修改app_versions表,添加最后更新时间戳用于热门排行
|
-- 修改app_versions表,添加最后更新时间戳用于热门排行
|
||||||
SET @exist_last_updated = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'app_versions' AND COLUMN_NAME = 'last_updated');
|
SET @exist_last_updated = (SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = 'app_versions' AND COLUMN_NAME = 'last_updated');
|
||||||
SET @sql = IF(@exist_last_updated = 0, 'ALTER TABLE app_versions ADD COLUMN last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', 'SELECT 1');
|
SET @sql = IF(@exist_last_updated = 0, 'ALTER TABLE app_versions ADD COLUMN last_updated TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP', 'SELECT 1');
|
||||||
PREPARE stmt FROM @sql;
|
PREPARE stmt FROM @sql;
|
||||||
EXECUTE stmt;
|
EXECUTE stmt;
|
||||||
|
|||||||
Reference in New Issue
Block a user