|
1 | 1 | <?php
|
2 | 2 |
|
| 3 | +use WP_CLI\Formatter; |
3 | 4 | use \WP_CLI\Utils;
|
4 | 5 |
|
5 | 6 | /**
|
@@ -833,7 +834,7 @@ public function size( $args, $assoc_args ) {
|
833 | 834 | 'format' => $format,
|
834 | 835 | );
|
835 | 836 |
|
836 |
| - $formatter = new \WP_CLI\Formatter( $args, $fields ); |
| 837 | + $formatter = new Formatter( $args, $fields ); |
837 | 838 | $formatter->display_items( $rows );
|
838 | 839 | }
|
839 | 840 | }
|
@@ -1160,6 +1161,78 @@ public function search( $args, $assoc_args ) {
|
1160 | 1161 | }
|
1161 | 1162 | }
|
1162 | 1163 |
|
| 1164 | + /** |
| 1165 | + * Displays information about a given table. |
| 1166 | + * |
| 1167 | + * ## OPTIONS |
| 1168 | + * |
| 1169 | + * [<table>] |
| 1170 | + * : Name of the database table. |
| 1171 | + * |
| 1172 | + * [--format] |
| 1173 | + * : Render output in a particular format. |
| 1174 | + * --- |
| 1175 | + * default: table |
| 1176 | + * options: |
| 1177 | + * - table |
| 1178 | + * - csv |
| 1179 | + * - json |
| 1180 | + * - yaml |
| 1181 | + * --- |
| 1182 | + * |
| 1183 | + * ## EXAMPLES |
| 1184 | + * |
| 1185 | + * $ wp db columns wp_posts |
| 1186 | + * +-----------------------+---------------------+------+-----+---------------------+----------------+ |
| 1187 | + * | Field | Type | Null | Key | Default | Extra | |
| 1188 | + * +-----------------------+---------------------+------+-----+---------------------+----------------+ |
| 1189 | + * | ID | bigint(20) unsigned | NO | PRI | | auto_increment | |
| 1190 | + * | post_author | bigint(20) unsigned | NO | MUL | 0 | | |
| 1191 | + * | post_date | datetime | NO | | 0000-00-00 00:00:00 | | |
| 1192 | + * | post_date_gmt | datetime | NO | | 0000-00-00 00:00:00 | | |
| 1193 | + * | post_content | longtext | NO | | | | |
| 1194 | + * | post_title | text | NO | | | | |
| 1195 | + * | post_excerpt | text | NO | | | | |
| 1196 | + * | post_status | varchar(20) | NO | | publish | | |
| 1197 | + * | comment_status | varchar(20) | NO | | open | | |
| 1198 | + * | ping_status | varchar(20) | NO | | open | | |
| 1199 | + * | post_password | varchar(255) | NO | | | | |
| 1200 | + * | post_name | varchar(200) | NO | MUL | | | |
| 1201 | + * | to_ping | text | NO | | | | |
| 1202 | + * | pinged | text | NO | | | | |
| 1203 | + * | post_modified | datetime | NO | | 0000-00-00 00:00:00 | | |
| 1204 | + * | post_modified_gmt | datetime | NO | | 0000-00-00 00:00:00 | | |
| 1205 | + * | post_content_filtered | longtext | NO | | | | |
| 1206 | + * | post_parent | bigint(20) unsigned | NO | MUL | 0 | | |
| 1207 | + * | guid | varchar(255) | NO | | | | |
| 1208 | + * | menu_order | int(11) | NO | | 0 | | |
| 1209 | + * | post_type | varchar(20) | NO | MUL | post | | |
| 1210 | + * | post_mime_type | varchar(100) | NO | | | | |
| 1211 | + * | comment_count | bigint(20) | NO | | 0 | | |
| 1212 | + * +-----------------------+---------------------+------+-----+---------------------+----------------+ |
| 1213 | + * |
| 1214 | + * @when after_wp_load |
| 1215 | + */ |
| 1216 | + public function columns( $args, $assoc_args ) { |
| 1217 | + global $wpdb; |
| 1218 | + |
| 1219 | + $format = WP_CLI\Utils\get_flag_value( $assoc_args, 'format' ); |
| 1220 | + |
| 1221 | + WP_CLI\Utils\wp_get_table_names( array( $args[0] ), array() ); |
| 1222 | + |
| 1223 | + $columns = $wpdb->get_results( |
| 1224 | + 'SHOW COLUMNS FROM ' . $args[0] |
| 1225 | + ); |
| 1226 | + |
| 1227 | + $formatter_fields = array( 'Field', 'Type', 'Null', 'Key', 'Default', 'Extra' ); |
| 1228 | + $formatter_args = array( |
| 1229 | + 'format' => $format, |
| 1230 | + ); |
| 1231 | + |
| 1232 | + $formatter = new Formatter( $formatter_args, $formatter_fields ); |
| 1233 | + $formatter->display_items( $columns ); |
| 1234 | + } |
| 1235 | + |
1163 | 1236 | private static function get_create_query() {
|
1164 | 1237 |
|
1165 | 1238 | $create_query = sprintf( 'CREATE DATABASE %s', self::esc_sql_ident( DB_NAME ) );
|
|
0 commit comments