Wayde's Blog

知识源于积累


  • 首页

  • 关于

  • 分类

  • 标签

  • 个人收藏

  • 归档

  • 搜索

Alembic命令

发表于 2017-11-02 | 分类于 Other

Alembic—一款数据库版本控制工具

  1. 安装Alembic

    pip3 install alembic

  2. 初始化项目

    alembic init project_name

  3. 查看当前版本

    alembic current

  4. 查看当前版本详情

    alembic show

  5. 查看历史版本列表

    alembic history

  6. 升级到指定版本

    alembic upgrade 版本号

  7. 升级到最新版本(默认)

    alembic upgrade head

  8. 降级到指定版本

    alembic downgrade 版本号

  9. 降级到最初版本

    alembic downgrade base

  10. 离线更新(生成sql)

    alembic upgrade 版本号 --sql > migration.sql

  11. 从特定起始版本生成sql

    alembic upgrade 版本一:版本二 --sql > migration.sql

参考文档:
官方手册

DataGrip使用

发表于 2017-11-02 | 分类于 Other

参考资料:
DataGrip使用入门-安装及数据源管理(一)
DataGrip使用入门-常用设置(二)
DataGrip使用入门-常用操作(三)
DataGrip使用入门-导出数据(四)
DataGrip使用进阶-导航及搜索(一)
DataGrip使用进阶-代码提示及格式化(二)
DataGrip使用进阶-文本编辑器(三)

PostgreSQL 常用命令

发表于 2017-11-01 | 分类于 PostgreSQL
  1. 查看数据库版本

    1
    2
    $ psql -V
    $ psql --version
    1
    dbname=# select version();
  2. 命令行查询结果输出到文件

    1
    2
    dbname=# \o filename
    dbname=# \o select * from table;
  3. 导出tabname表数据的insert语句sql

    1
    $ pg_dump -h localhost -U username -d dbname --table tabname --data-only --column-inserts > tabname_insert.sql
  4. 命令行常用命令

    \l show database

    \dt show tables

    \di show index

    \du show users

    \df show functions

    \c db_name use database

    \c db_name username serverIP port

    \d tablename show table info

    select pg_database_size(‘db_name’); 查看数据库大小

    select pg_relation_size(‘table_name’); 查看表大小

    select pg_size_pretty(pg_relation_size(‘table_name’)); 以KB,MB,GB的方式来查看表大小

    select pg_size_pretty(pg_total_relation_size(‘table_name’)); 查看表的总大小,包括索引大小

    select spcname from pg_tablespace; 查看所有表空间

    select pg_size_pretty(pg_tablespace_size(‘pg_default’)); 查看表空间大小

    \q quit

  5. 备份数据库

    $ pg_dump -h host -U username -f ./backup.sql dbname

  6. 仅备份结构

    $ pg_dump -h host -U username -f ./backup.sql -s dbname

  7. 删除数据库

    $ dropdb -h localhost -p 5432 -U postgres dbname

    dbname=# drop database dbname;

  8. 删除活动连接

    dbname=# select pg_terminate_backend(pid) from pg_stat_activity where datname = 'dbname' and pid <>pg_backend_pid()

  9. 创建数据库

    dbname=# create database dbname owner username;

  10. 修改数据库

    dbname=# alter database dbname owner to new_user;

  11. 分配权限

    dbname=# grant all privileges on database dbname to user;

  12. 恢复数据库

    $ psql -h localhost -U postgres -d dbname < backup.sql

Shell 获取当前脚本路径

发表于 2017-10-26 | 分类于 Shell
1
2
echo $(cd `dirname $0`;pwd)
project_path=`dirname $(cd \`dirname $0\`;pwd)`;

Git 分支管理

发表于 2017-10-16 | 分类于 Git
  1. 查看不存在对应远程分支的本地分支

    $ git remote show origin

    or

    $ git remote prune origin --dry-run

  2. 删除不存在对应远程分支的本地分支

    $ git remote prune origin

  3. 删除远程分支

    $ git push origin --delete <branch_name>

    or

    $ git push origin :<branch_name>

  4. 批量删除远程分支

    $ git branch --sort=committerdate | grep -v 'master\|developer' | xargs git push --delete origin

    阅读全文 »

Linux device设备文件

发表于 2017-10-15 | 分类于 Linux

设备文件:块设备文件(b)、字符设备文件(c)

/dev/hd[a-t]:IDE设备
/dev/sd[a-z]:SCSI设备
/dev/fd[0-7]:标准软驱
/dev/md[0-31]:软raid设备
/dev/loop[0-7]:本地回环设备
/dev/ram[0-15]:内存
/dev/null:无限数据接收设备,相当于黑洞
/dev/zero:无限零资源
/dev/tty[0-63]:虚拟终端
/dev/ttyS[0-3]:串口
/dev/lp[0-3]:并口
/dev/console:控制台
/dev/fb[0-31]:framebuffer
/dev/cdrom => /dev/hdc
/dev/modem => /dev/ttyS[0-9]
/dev/pilot => /dev/ttyS[0-9]
/dev/random:随机数设备
/dev/urandom:随机数设备

特殊设备:

  1. /dev/null 它是空设备,也称为位桶(bit bucket)或者黑洞(black hole)。你可以向它输入任何数据,但任何写入它的数据都会被抛弃。通常用于处理不需要的输出流。(当然,它也可以作为空的输入流)
  2. /dev/zero 该设备无穷尽地提供空字符(ASCII NUL, 0x00),可以使用任何你需要的数目。它通常用于向设备或文件写入字符串0,用于初始化数据存储。(当然,也可作为输出流的接受容器)

eg. dd if=/dev/zero of=test.txt bs=1k count=1

dd:用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

参考资料:
dd命令详解

Linux 查看文件信息

发表于 2017-10-15 | 分类于 Linux
  1. 查看文件信息 stat filename

  2. 文件类型

    b - 块设备文件
    d - 目录
    c - 字符设备文件
    p - 管道文件
    l - 符号链接文件
    f - 普通文件
    s - socket文件

  3. 文件权限

    备注: 0755最前面的0表示不使用任何特殊权限,该位上的数字可以是:

    0,1(–t),2(-s-),3(-st),4(s–),5(s-t),6(ss-),7(sst)

    • r w x

    • s

      未生效时为大写S

      设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份

      典型的文件是passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权限, 从而可以更改用户的密码

    • t

      只针对目录生效,表示只能让所属主以及root可以删除(重命名/移动)该目录下的文件

      典型的文件是 /tmp /home

    • i

      不可修改权限

    • a

      只追加权限

    • Permission numbers

> 0 = ---
>
> 1 = --x
>
> 2 = -w-
>
> 3 = -wx
>
> 4 = r--
>
> 5 = r-x
>
> 6 = rw-
>
> 7 = rwx
  1. 时间信息

    • Access time

      访问时间: 对文件进行一次读操作,它的访问时间就会改变。例如像:cat、more等操作,但是像之前的state还有ls命令对atime是不会有影响的

    • Modify time

      修改时间: 文件的内容被最后一次修改的时间,我们经常用的ls -l命令显示出来的文件时间就是这个时间,当用vim对文件进行编辑之后保存,它的mtime就会相应的改变

    • Change time

      状态时间: 当文件的状态被改变的时候,状态时间就会随之改变,例如当使用chmod、chown等改变文件属性的操作是会改变文件的ctime的

    • 单独查看上述3个时间

      Access Time: ls -lu filename

      Modify Time: ls -l filename (默认显示修改时间)

      Change Time: ls -lc filename

####

Chrome 常见问题及解决方法

发表于 2017-10-11 | 分类于 Other

Chrome登录闪退

尝试直接访问 chrome://chrome-signin/?source=2 登录

Chrome清除dns cache

访问chrome://net-internals/#dns

打开chrome://net-internals/#dns 右上角有个箭头,下拉,需要点击Clear cache 和 Flush sockets 两项才能清除

Chrome 网页截屏

F12 => Ctrl + Shift + P => full size screenshot

Nginx 配置静态目录

发表于 2017-10-05 | 分类于 Nginx
  • 配置静态目录

    1
    2
    3
    4
    5
    location ^~ /docs {
    autoindex on;
    alias /home/wayde/docs/operation;
    index op-ppt.html;
    }
  • root与alias

    访问 domain/docs/test.html,即请求/home/www/project/docs/test.html

    1
    2
    3
    location /docs/ {
    root /home/www/project;
    }

    访问domain/docs/test.html,即请求/home/www/project/static/test.html

    1
    2
    3
    location /docs/ {
    alias /home/www/project/static;
    }
    1. 使用alias时目录名后面一定要加“/”
    2. 一般情况下,在location /中配置root,在location /other中配置alias
  • 404 Not Found

    详见参考资料

  • 403 Forbidden

    表示你在请求一个资源文件但是nginx不允许你查看

    哪些场景需要返回403状态码的场景?

    1.网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。

    2.访问禁止目录浏览的目录,例:设置autoindex off后访问目录

    3.用户访问只能被内网访问的文件

    1.权限配置不正确

    ​ 解决办法:设置所有父目录为755权限,设置文件为644权限可以避免权限不正确。

    1. 目录索引设置错误(index指令配置)

      当访问该网站的时,nginx 会按照 index.html,index.htm ,index.php 的先后顺序在根目录中查找文件。如果这三个文件都不存在,那么nginx就会返回403 Forbidden。

      如果index中不定义 index.php ,nginx直接返回403 Forbidden而不会去检查index.php是否存在

      解决办法:添加首页文件到index指令,常见的是index.php,index.jsp,index.jsp或者自定义首页文件

  • 自动去掉url结尾斜杠(/)

    rewrite ^/(.*)/\$ /$1 permanent

参考资料:
Nginx 配置静态文件404问题

Ubuntu 卸载软件

发表于 2017-10-03 | 分类于 Ubuntu
  1. apt-get autoclean

    将已经删除了的软件包的.deb安装文件从硬盘中删除掉

  2. apt-get clean
    类似上面的命令,但它删除包缓存中的所有包

  3. apt-get autoremove

    删除为了满足其他软件包的依赖而安装的,但现在不再需要的软件包

  4. apt-get remove package_name

    删除已安装的软件包(保留配置文件)

  5. apt-get --purge remove package_name

    删除已安装包(不保留配置文件)

  6. apt-cache search package_name

    查找一个软件包

  7. apt-cache show package_name

    查看软件包信息

  8. apt-cache depends package_name

    查看软件包的依赖关系

  9. apt-cache dump

    查看每个软件包的简要信息

  10. apt list --installed

    列出全部已安装软件包

  11. dpkg -l

    列出全部已安装软件包

1…11121314
Wayde

Wayde

140 日志
14 分类
112 标签
GitHub StackOverflow Instagram
© 2012–2022 Wayde
粤ICP备2020135844号